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 7aa36bdb..749e2b53 100644 --- a/app/src/main/java/com/cappielloantonio/play/database/AppDatabase.java +++ b/app/src/main/java/com/cappielloantonio/play/database/AppDatabase.java @@ -23,13 +23,11 @@ import com.cappielloantonio.play.model.Server; @SuppressLint("RestrictedApi") @Database( - version = 42, + version = 43, entities = {Queue.class, Server.class, RecentSearch.class, Download.class, Playlist.class, Chronology.class}, - autoMigrations = {@AutoMigration(from = 41, to = 42)} + autoMigrations = {@AutoMigration(from = 42, to = 43)} ) public abstract class AppDatabase extends RoomDatabase { - private static final String TAG = "AppDatabase"; - private final static String DB_NAME = "play_db"; private static AppDatabase instance; diff --git a/app/src/main/java/com/cappielloantonio/play/database/dao/ChronologyDao.java b/app/src/main/java/com/cappielloantonio/play/database/dao/ChronologyDao.java index 52e3a110..1c48e6f4 100644 --- a/app/src/main/java/com/cappielloantonio/play/database/dao/ChronologyDao.java +++ b/app/src/main/java/com/cappielloantonio/play/database/dao/ChronologyDao.java @@ -12,8 +12,8 @@ import java.util.List; @Dao public interface ChronologyDao { - @Query("SELECT * FROM chronology WHERE timestamp >= :startDate AND timestamp < :endDate GROUP BY id ORDER BY COUNT(id) DESC LIMIT 9") - LiveData> getAllFrom(long startDate, long endDate); + @Query("SELECT * FROM chronology WHERE timestamp >= :startDate AND timestamp < :endDate AND server == :server GROUP BY id ORDER BY COUNT(id) DESC LIMIT 9") + LiveData> getAllFrom(long startDate, long endDate, String server); @Insert(onConflict = OnConflictStrategy.REPLACE) void insert(Chronology chronologyObject); diff --git a/app/src/main/java/com/cappielloantonio/play/model/Chronology.java b/app/src/main/java/com/cappielloantonio/play/model/Chronology.java index 49a81ea4..d25f0c18 100644 --- a/app/src/main/java/com/cappielloantonio/play/model/Chronology.java +++ b/app/src/main/java/com/cappielloantonio/play/model/Chronology.java @@ -49,7 +49,10 @@ public class Chronology implements Parcelable { @ColumnInfo(name = "timestamp") private Long timestamp; - public Chronology(String trackId, String title, String albumId, String albumName, String artistId, String artistName, String coverArtId, long duration, String container, int bitrate, String extension) { + @ColumnInfo(name = "server") + private String server; + + public Chronology(String trackId, String title, String albumId, String albumName, String artistId, String artistName, String coverArtId, long duration, String container, int bitrate, String extension, String server) { this.trackId = trackId; this.title = title; this.albumId = albumId; @@ -62,6 +65,7 @@ public class Chronology implements Parcelable { this.bitrate = bitrate; this.extension = extension; this.timestamp = System.currentTimeMillis(); + this.server = server; } public int getUuid() { @@ -168,6 +172,14 @@ public class Chronology implements Parcelable { this.timestamp = timestamp; } + public String getServer() { + return server; + } + + public void setServer(String server) { + this.server = server; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -207,6 +219,7 @@ public class Chronology implements Parcelable { dest.writeInt(this.bitrate); dest.writeString(this.extension); dest.writeLong(this.timestamp); + dest.writeString(this.server); } protected Chronology(Parcel in) { @@ -222,6 +235,7 @@ public class Chronology implements Parcelable { this.bitrate = in.readInt(); this.extension = in.readString(); this.timestamp = in.readLong(); + this.server = in.readString(); } public static final Creator CREATOR = new Creator() { diff --git a/app/src/main/java/com/cappielloantonio/play/repository/ChronologyRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/ChronologyRepository.java index b4f8bab9..afdfb341 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/ChronologyRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/ChronologyRepository.java @@ -21,7 +21,7 @@ public class ChronologyRepository { chronologyDao = database.chronologyDao(); } - public LiveData> getThisWeek() { + public LiveData> getThisWeek(String server) { Calendar calendar = Calendar.getInstance(); Calendar first = (Calendar) calendar.clone(); @@ -30,10 +30,10 @@ public class ChronologyRepository { Calendar last = (Calendar) first.clone(); last.add(Calendar.DAY_OF_YEAR, 6); - return chronologyDao.getAllFrom(first.getTime().getTime(), last.getTime().getTime()); + return chronologyDao.getAllFrom(first.getTime().getTime(), last.getTime().getTime(), server); } - public LiveData> getLastWeek() { + public LiveData> getLastWeek(String server) { Calendar calendar = Calendar.getInstance(); Calendar first = (Calendar) calendar.clone(); @@ -42,7 +42,7 @@ public class ChronologyRepository { Calendar last = (Calendar) first.clone(); last.add(Calendar.DAY_OF_YEAR, 6); - return chronologyDao.getAllFrom(first.getTime().getTime(), last.getTime().getTime()); + return chronologyDao.getAllFrom(first.getTime().getTime(), last.getTime().getTime(), server); } public void insert(Chronology item) { diff --git a/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java b/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java index 11950938..d262ba98 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java +++ b/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java @@ -217,6 +217,7 @@ public class MappingUtil { bundle.putString("container", media.getContainer()); bundle.putInt("bitrate", media.getBitrate()); bundle.putString("extension", media.getExtension()); + bundle.putString("server", PreferenceUtil.getInstance(context).getServerId()); return new MediaItem.Builder() .setMediaId(media.getId()) @@ -283,7 +284,8 @@ public class MappingUtil { (long) item.mediaMetadata.extras.get("duration"), item.mediaMetadata.extras.get("container").toString(), (int) item.mediaMetadata.extras.get("bitrate"), - item.mediaMetadata.extras.get("extension").toString() + item.mediaMetadata.extras.get("extension").toString(), + item.mediaMetadata.extras.get("server").toString() ); } 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 f602a6e3..2163c506 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java @@ -80,12 +80,13 @@ public class HomeViewModel extends AndroidViewModel { public LiveData> getGridSongSample(LifecycleOwner owner) { Calendar cal = Calendar.getInstance(); int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH); + String server = PreferenceUtil.getInstance(App.getInstance()).getServerId(); if (thisGridTopSong.getValue() == null) { if (dayOfMonth >= 7) { - chronologyRepository.getThisWeek().observe(owner, thisGridTopSong::postValue); + chronologyRepository.getThisWeek(server).observe(owner, thisGridTopSong::postValue); } else { - chronologyRepository.getLastWeek().observe(owner, thisGridTopSong::postValue); + chronologyRepository.getLastWeek(server).observe(owner, thisGridTopSong::postValue); } }