|
|
@ -1,14 +1,19 @@
|
|
|
|
package org.tasks.scheduling;
|
|
|
|
package org.tasks.scheduling;
|
|
|
|
|
|
|
|
|
|
|
|
import static com.todoroo.andlib.utility.DateUtilities.ONE_MINUTE;
|
|
|
|
import com.google.common.collect.ImmutableList;
|
|
|
|
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.todoroo.astrid.data.Task;
|
|
|
|
import com.todoroo.astrid.data.Task;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.tasks.injection.ApplicationScope;
|
|
|
|
|
|
|
|
import org.tasks.jobs.WorkManager;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.SortedSet;
|
|
|
|
import java.util.SortedSet;
|
|
|
|
import java.util.TreeSet;
|
|
|
|
import java.util.TreeSet;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import org.tasks.injection.ApplicationScope;
|
|
|
|
|
|
|
|
import org.tasks.jobs.WorkManager;
|
|
|
|
import static com.todoroo.andlib.utility.DateUtilities.ONE_MINUTE;
|
|
|
|
|
|
|
|
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
|
|
|
|
|
|
|
|
|
|
|
|
@ApplicationScope
|
|
|
|
@ApplicationScope
|
|
|
|
public class RefreshScheduler {
|
|
|
|
public class RefreshScheduler {
|
|
|
@ -45,7 +50,7 @@ public class RefreshScheduler {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public synchronized void scheduleNext() {
|
|
|
|
public synchronized void scheduleNext() {
|
|
|
|
SortedSet<Long> lapsed = jobs.headSet(currentTimeMillis() + 1);
|
|
|
|
List<Long> lapsed = ImmutableList.copyOf(jobs.headSet(currentTimeMillis() + 1));
|
|
|
|
jobs.removeAll(lapsed);
|
|
|
|
jobs.removeAll(lapsed);
|
|
|
|
if (!jobs.isEmpty()) {
|
|
|
|
if (!jobs.isEmpty()) {
|
|
|
|
workManager.scheduleRefresh(jobs.first());
|
|
|
|
workManager.scheduleRefresh(jobs.first());
|
|
|
|