diff --git a/app/src/main/java/org/adrianvictor/geleia/adapter/DownloadsAdapter.java b/app/src/main/java/org/adrianvictor/geleia/adapter/DownloadsAdapter.java index 844798d4..25cf4c79 100644 --- a/app/src/main/java/org/adrianvictor/geleia/adapter/DownloadsAdapter.java +++ b/app/src/main/java/org/adrianvictor/geleia/adapter/DownloadsAdapter.java @@ -46,7 +46,7 @@ public class DownloadsAdapter extends RecyclerView.Adapter getAll(); + @Query("SELECT * FROM songs LEFT JOIN cache USING(id) WHERE songs.id IN (:ids)") List getSongs(List ids); diff --git a/app/src/main/java/org/adrianvictor/geleia/fragments/library/DownloadsFragment.java b/app/src/main/java/org/adrianvictor/geleia/fragments/library/DownloadsFragment.java index 58f379b6..f6f259f5 100644 --- a/app/src/main/java/org/adrianvictor/geleia/fragments/library/DownloadsFragment.java +++ b/app/src/main/java/org/adrianvictor/geleia/fragments/library/DownloadsFragment.java @@ -3,9 +3,10 @@ package org.adrianvictor.geleia.fragments.library; import androidx.annotation.NonNull; import androidx.recyclerview.widget.GridLayoutManager; - +import org.adrianvictor.geleia.App; import org.adrianvictor.geleia.adapter.DownloadsAdapter; +import org.adrianvictor.geleia.database.Cache; import org.adrianvictor.geleia.model.Song; import org.adrianvictor.geleia.model.SortMethod; import org.adrianvictor.geleia.model.SortOrder; @@ -34,24 +35,24 @@ public class DownloadsFragment extends AbsLibraryPagerRecyclerViewCustomGridSize @Override protected void loadItems(int index) { - List dummySongs = new ArrayList<>(); + new Thread(() -> { + List cachedEntries = App.getDatabase().cacheDao().getAll(); - Song song1 = new Song(); - song1.title = "Dummy Song Title"; - song1.artistName = "A. Dummy Artist"; + List songIds = new ArrayList<>(); - dummySongs.add(song1); + for (Cache entry : cachedEntries) { + songIds.add(entry.id); + } - Song song2 = new Song(); - song2.title = "Another Test Song"; - song2.artistName = "The Testers"; - dummySongs.add(song2); + final List downloadedSongs = App.getDatabase().cacheDao().getSongs(songIds); - getActivity().runOnUiThread(() -> { - getAdapter().swapDataSet(dummySongs); - }); + if (getActivity() != null) { + getActivity().runOnUiThread(() -> { + getAdapter().swapDataSet(downloadedSongs); + }); + } + }).start(); } - @Override protected int loadGridSize() { return 1;