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 {