fun initToolbar() {
toolbarItem(name = "reload", icon = "view-refresh") { event ->
val window = event.windowData as MainWindow
- SyncJob().sync() {
+ SyncJob({ Database.getAllFeeds()}).sync() {
window.sourceList.invalidateCache()
window.sourceList.reloadStatus()
window.feedList.reloadCurrentFeed()
import java.net.http.HttpRequest
import java.net.http.HttpResponse
-class SyncJob {
- val feeds: List<Feed>
+class SyncJob(feeds: () -> List<Feed>) {
+ val getFeeds: () -> List<Feed> = feeds
var completionContext = ToolkitDispatcher
- init {
- feeds = Database.getAllFeeds()
- }
-
fun sync(completion: () -> Unit = {}) {
GlobalScope.launch(Dispatchers.IO) {
+ val feeds = getFeeds()
+
val client = HttpClient.newBuilder().build()
val jobs = feeds.map { feed ->
async {
}
Database.addItems(items)
Database.updateFeedDate(feed)
- syndFeed
}
} catch (e: Exception) {
println("Failed to fetch ${feed.uri}: ${e.message}")
- null
}
}
}