From 75ae569a550e029950c38b5be290509bfc586599 Mon Sep 17 00:00:00 2001 From: Fawkes100 Date: Sun, 19 Jan 2025 19:49:20 +0100 Subject: [PATCH] FIXME: Missing Freshly Created Songs to Fetch --- .../notevault/data/repositories/SongSyncRepository.java | 3 ++- .../notevault/network/sync/SongSyncModule.java | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/stormtales/notevault/data/repositories/SongSyncRepository.java b/app/src/main/java/com/stormtales/notevault/data/repositories/SongSyncRepository.java index 93e392a..e97da82 100644 --- a/app/src/main/java/com/stormtales/notevault/data/repositories/SongSyncRepository.java +++ b/app/src/main/java/com/stormtales/notevault/data/repositories/SongSyncRepository.java @@ -165,7 +165,7 @@ public class SongSyncRepository { }); } - public void markSongsAsRemotelyModified(List serverIDs) { + public void markSongsAsRemotelyModified(List serverIDs, LoadDataCallback> callback) { Executors.newSingleThreadExecutor().execute(() -> { List songs = songDao.getSongsByServerIDs(serverIDs); List createdSongs = new ArrayList<>(); @@ -189,6 +189,7 @@ public class SongSyncRepository { } songDao.updateSongs(songs); songDao.insertSongs(createdSongs); + callback.onResult(createdSongs); }); } diff --git a/app/src/main/java/com/stormtales/notevault/network/sync/SongSyncModule.java b/app/src/main/java/com/stormtales/notevault/network/sync/SongSyncModule.java index bbec6c9..20620a9 100644 --- a/app/src/main/java/com/stormtales/notevault/network/sync/SongSyncModule.java +++ b/app/src/main/java/com/stormtales/notevault/network/sync/SongSyncModule.java @@ -90,14 +90,17 @@ public class SongSyncModule { songSyncService.fetchRemoteModifiedSongs(LocalDateTime.now().minusDays(35), new SongSyncRepository.LoadDataCallback() { @Override public void onResult(FetchResponse result) { - songSyncRepository.markSongsAsRemotelyModified(result.getServerIDs()); - getRemotelyModifiedSongData(); + songSyncRepository.markSongsAsRemotelyModified(result.getServerIDs(), createdSongs -> { + getRemotelyModifiedSongData(createdSongs); + }); + } }); } - public void getRemotelyModifiedSongData() { + public void getRemotelyModifiedSongData(List freshlyCreatedSongs) { songSyncRepository.loadRemotelyModifiedSongs(songs -> { + songs.addAll(freshlyCreatedSongs); if(songs.isEmpty()) { syncViewModel.finishFetching(); } else {