Implement barebones logic to list songs in the downloads page.
This commit is contained in:
parent
cd0971bf14
commit
1943344585
3 changed files with 19 additions and 15 deletions
|
|
@ -46,7 +46,7 @@ public class DownloadsAdapter extends RecyclerView.Adapter<DownloadsAdapter.View
|
|||
holder.title.setText(song.title);
|
||||
holder.artist.setText(song.artistName);
|
||||
|
||||
// TODO: Load album cover into holder.cover using a library like Glide or Picasso
|
||||
// TODO: Load album cover into holder.cover using Glide
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@ public interface CacheDao {
|
|||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
void insertCache(Cache cache);
|
||||
|
||||
@Query("SELECT * FROM cache")
|
||||
List<Cache> getAll();
|
||||
|
||||
@Query("SELECT * FROM songs LEFT JOIN cache USING(id) WHERE songs.id IN (:ids)")
|
||||
List<Song> getSongs(List<String> ids);
|
||||
|
||||
|
|
|
|||
|
|
@ -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<Song> dummySongs = new ArrayList<>();
|
||||
new Thread(() -> {
|
||||
List<Cache> cachedEntries = App.getDatabase().cacheDao().getAll();
|
||||
|
||||
Song song1 = new Song();
|
||||
song1.title = "Dummy Song Title";
|
||||
song1.artistName = "A. Dummy Artist";
|
||||
List<String> 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<Song> 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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue