package org.wikipedia.recurring;
import org.wikipedia.WikipediaApp;
import org.wikipedia.alphaupdater.AlphaUpdateChecker;
import org.wikipedia.concurrency.SaneAsyncTask;
import org.wikipedia.page.snippet.SharedImageCleanupTask;
import org.wikipedia.settings.RemoteConfigRefreshTask;
import org.wikipedia.util.ReleaseUtil;
public class RecurringTasksExecutor {
private final WikipediaApp app;
public RecurringTasksExecutor(WikipediaApp app) {
this.app = app;
}
public void run() {
SaneAsyncTask<Void> task = new SaneAsyncTask<Void>() {
@Override
public Void performTask() throws Throwable {
RecurringTask[] allTasks = new RecurringTask[] {
// Has list of all rotating tasks that need to be run
new RemoteConfigRefreshTask(),
new SharedImageCleanupTask(app),
new DailyEventTask(app)
};
for (RecurringTask task: allTasks) {
task.runIfNecessary();
}
if (ReleaseUtil.isAlphaRelease()) {
new AlphaUpdateChecker(app).runIfNecessary();
}
return null;
}
};
task.execute();
}
}