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.title.setText(song.title);
|
||||||
holder.artist.setText(song.artistName);
|
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
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,9 @@ public interface CacheDao {
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
void insertCache(Cache cache);
|
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)")
|
@Query("SELECT * FROM songs LEFT JOIN cache USING(id) WHERE songs.id IN (:ids)")
|
||||||
List<Song> getSongs(List<String> ids);
|
List<Song> getSongs(List<String> ids);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,10 @@ package org.adrianvictor.geleia.fragments.library;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
||||||
|
|
||||||
|
import org.adrianvictor.geleia.App;
|
||||||
import org.adrianvictor.geleia.adapter.DownloadsAdapter;
|
import org.adrianvictor.geleia.adapter.DownloadsAdapter;
|
||||||
|
|
||||||
|
import org.adrianvictor.geleia.database.Cache;
|
||||||
import org.adrianvictor.geleia.model.Song;
|
import org.adrianvictor.geleia.model.Song;
|
||||||
import org.adrianvictor.geleia.model.SortMethod;
|
import org.adrianvictor.geleia.model.SortMethod;
|
||||||
import org.adrianvictor.geleia.model.SortOrder;
|
import org.adrianvictor.geleia.model.SortOrder;
|
||||||
|
|
@ -34,24 +35,24 @@ public class DownloadsFragment extends AbsLibraryPagerRecyclerViewCustomGridSize
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void loadItems(int index) {
|
protected void loadItems(int index) {
|
||||||
List<Song> dummySongs = new ArrayList<>();
|
new Thread(() -> {
|
||||||
|
List<Cache> cachedEntries = App.getDatabase().cacheDao().getAll();
|
||||||
|
|
||||||
Song song1 = new Song();
|
List<String> songIds = new ArrayList<>();
|
||||||
song1.title = "Dummy Song Title";
|
|
||||||
song1.artistName = "A. Dummy Artist";
|
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
getActivity().runOnUiThread(() -> {
|
|
||||||
getAdapter().swapDataSet(dummySongs);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final List<Song> downloadedSongs = App.getDatabase().cacheDao().getSongs(songIds);
|
||||||
|
|
||||||
|
if (getActivity() != null) {
|
||||||
|
getActivity().runOnUiThread(() -> {
|
||||||
|
getAdapter().swapDataSet(downloadedSongs);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
protected int loadGridSize() {
|
protected int loadGridSize() {
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue