diff --git a/app/src/main/java/com/cappielloantonio/play/database/AppDatabase.java b/app/src/main/java/com/cappielloantonio/play/database/AppDatabase.java index f44178f3..f4c04df4 100644 --- a/app/src/main/java/com/cappielloantonio/play/database/AppDatabase.java +++ b/app/src/main/java/com/cappielloantonio/play/database/AppDatabase.java @@ -20,7 +20,7 @@ import com.cappielloantonio.play.model.Server; @SuppressLint("RestrictedApi") @Database( - version = 25, + version = 26, entities = {Queue.class, Server.class, RecentSearch.class, Download.class, Playlist.class} // autoMigrations = { @AutoMigration(from = 23, to = 24) } ) diff --git a/app/src/main/java/com/cappielloantonio/play/database/dao/PlaylistDao.java b/app/src/main/java/com/cappielloantonio/play/database/dao/PlaylistDao.java index 64b2cb1b..11250ad4 100644 --- a/app/src/main/java/com/cappielloantonio/play/database/dao/PlaylistDao.java +++ b/app/src/main/java/com/cappielloantonio/play/database/dao/PlaylistDao.java @@ -13,8 +13,8 @@ import java.util.List; @Dao public interface PlaylistDao { - @Query("SELECT * FROM playlist") - LiveData> getAll(); + @Query("SELECT * FROM playlist WHERE server=:serverId") + LiveData> getAll(String serverId); @Insert(onConflict = OnConflictStrategy.REPLACE) void insert(Playlist playlist); diff --git a/app/src/main/java/com/cappielloantonio/play/database/dao/QueueDao.java b/app/src/main/java/com/cappielloantonio/play/database/dao/QueueDao.java index ce16a0e5..60080020 100644 --- a/app/src/main/java/com/cappielloantonio/play/database/dao/QueueDao.java +++ b/app/src/main/java/com/cappielloantonio/play/database/dao/QueueDao.java @@ -21,7 +21,7 @@ public interface QueueDao { @Insert(onConflict = OnConflictStrategy.REPLACE) void insertAll(List songQueueObject); - @Query("DELETE FROM queue WHERE queue.track_order = :position") + @Query("DELETE FROM queue WHERE queue.track_order=:position") void deleteByPosition(int position); @Query("DELETE FROM queue") diff --git a/app/src/main/java/com/cappielloantonio/play/model/Playlist.java b/app/src/main/java/com/cappielloantonio/play/model/Playlist.java index 95fe34bd..93fcbbd6 100644 --- a/app/src/main/java/com/cappielloantonio/play/model/Playlist.java +++ b/app/src/main/java/com/cappielloantonio/play/model/Playlist.java @@ -34,6 +34,9 @@ public class Playlist implements Parcelable { @ColumnInfo(name = "playlist_duration") private long duration; + @ColumnInfo(name = "server") + private String server; + public Playlist(com.cappielloantonio.play.subsonic.models.Playlist playlist) { this.id = playlist.getId(); this.name = playlist.getName(); @@ -49,12 +52,13 @@ public class Playlist implements Parcelable { this.name = name; } - public Playlist(@NonNull String id, String name, String primary, int songCount, long duration) { + public Playlist(@NonNull String id, String name, String primary, int songCount, long duration, String server) { this.id = id; this.name = name; this.primary = primary; this.songCount = songCount; this.duration = duration; + this.server = server; } @NonNull @@ -82,6 +86,14 @@ public class Playlist implements Parcelable { return duration; } + public String getServer() { + return server; + } + + public void setServer(String server) { + this.server = server; + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/app/src/main/java/com/cappielloantonio/play/repository/PlaylistRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/PlaylistRepository.java index 5035a08b..286f4694 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/PlaylistRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/PlaylistRepository.java @@ -154,8 +154,8 @@ public class PlaylistRepository { }); } - public LiveData> getPinnedPlaylists() { - return playlistDao.getAll(); + public LiveData> getPinnedPlaylists(String serverId) { + return playlistDao.getAll(serverId); } public void insert(Playlist playlist) { diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java index 296db9b6..dc4cb6d0 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java @@ -8,6 +8,7 @@ import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.cappielloantonio.play.App; import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Playlist; @@ -16,6 +17,7 @@ import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.PlaylistRepository; import com.cappielloantonio.play.repository.SongRepository; +import com.cappielloantonio.play.util.PreferenceUtil; import java.util.Collections; import java.util.List; @@ -96,7 +98,7 @@ public class HomeViewModel extends AndroidViewModel { } public LiveData> getPinnedPlaylistList(LifecycleOwner owner, int maxNumber, boolean random) { - playlistRepository.getPinnedPlaylists().observe(owner, playlists -> { + playlistRepository.getPinnedPlaylists(PreferenceUtil.getInstance(App.getInstance()).getServerId()).observe(owner, playlists -> { if (random) Collections.shuffle(playlists); List subPlaylist = playlists.subList(0, Math.min(maxNumber, playlists.size())); pinnedPlaylists.postValue(subPlaylist); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java index 943a42e1..fcfb071c 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java @@ -8,10 +8,12 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.cappielloantonio.play.App; import com.cappielloantonio.play.model.Playlist; import com.cappielloantonio.play.repository.DownloadRepository; import com.cappielloantonio.play.repository.PlaylistRepository; import com.cappielloantonio.play.util.MappingUtil; +import com.cappielloantonio.play.util.PreferenceUtil; import java.util.ArrayList; import java.util.List; @@ -51,7 +53,7 @@ public class PlaylistCatalogueViewModel extends AndroidViewModel { public LiveData> getPinnedPlaylistList(FragmentActivity activity) { pinnedPlaylistList = new MutableLiveData<>(new ArrayList<>()); - playlistRepository.getPinnedPlaylists().observe(activity, playlists -> pinnedPlaylistList.postValue(playlists)); + playlistRepository.getPinnedPlaylists(PreferenceUtil.getInstance(App.getInstance()).getServerId()).observe(activity, playlists -> pinnedPlaylistList.postValue(playlists)); return pinnedPlaylistList; } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java index b9e0756f..783f27b2 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java @@ -8,11 +8,13 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.cappielloantonio.play.App; import com.cappielloantonio.play.model.Playlist; import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.repository.DownloadRepository; import com.cappielloantonio.play.repository.PlaylistRepository; import com.cappielloantonio.play.util.MappingUtil; +import com.cappielloantonio.play.util.PreferenceUtil; import java.util.List; @@ -48,6 +50,7 @@ public class PlaylistPageViewModel extends AndroidViewModel { public void setPlaylist(Playlist playlist) { this.playlist = playlist; + this.playlist.setServer(PreferenceUtil.getInstance(App.getInstance()).getServerId()); } public void setOffline(boolean offline) { @@ -60,7 +63,7 @@ public class PlaylistPageViewModel extends AndroidViewModel { public LiveData isPinned(FragmentActivity activity) { MutableLiveData isPinnedLive = new MutableLiveData<>(); - playlistRepository.getPinnedPlaylists().observe(activity, playlists -> isPinnedLive.postValue(playlists.contains(playlist))); + playlistRepository.getPinnedPlaylists(PreferenceUtil.getInstance(App.getInstance()).getServerId()).observe(activity, playlists -> isPinnedLive.postValue(playlists.contains(playlist))); return isPinnedLive; }