mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-03 02:41:40 +00:00
- Removed middle layer of abstraction for subsonic classes
- Used kotlin for classes
This commit is contained in:
parent
917c0839de
commit
ca15f51c85
168 changed files with 2026 additions and 6588 deletions
|
|
@ -1,13 +1,13 @@
|
|||
package com.cappielloantonio.play.database;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.room.AutoMigration;
|
||||
import androidx.room.Database;
|
||||
import androidx.room.Room;
|
||||
import androidx.room.RoomDatabase;
|
||||
import androidx.room.TypeConverters;
|
||||
|
||||
import com.cappielloantonio.play.database.converter.DateConverters;
|
||||
import com.cappielloantonio.play.database.dao.ChronologyDao;
|
||||
import com.cappielloantonio.play.database.dao.DownloadDao;
|
||||
import com.cappielloantonio.play.database.dao.PlaylistDao;
|
||||
|
|
@ -16,17 +16,17 @@ import com.cappielloantonio.play.database.dao.RecentSearchDao;
|
|||
import com.cappielloantonio.play.database.dao.ServerDao;
|
||||
import com.cappielloantonio.play.model.Chronology;
|
||||
import com.cappielloantonio.play.model.Download;
|
||||
import com.cappielloantonio.play.model.Playlist;
|
||||
import com.cappielloantonio.play.model.Queue;
|
||||
import com.cappielloantonio.play.model.RecentSearch;
|
||||
import com.cappielloantonio.play.model.Server;
|
||||
import com.cappielloantonio.play.subsonic.models.Playlist;
|
||||
|
||||
@SuppressLint("RestrictedApi")
|
||||
@Database(
|
||||
version = 46,
|
||||
version = 48,
|
||||
entities = {Queue.class, Server.class, RecentSearch.class, Download.class, Playlist.class, Chronology.class}
|
||||
// autoMigrations = {@AutoMigration(from = 43, to = 44)}
|
||||
)
|
||||
@TypeConverters({DateConverters.class})
|
||||
public abstract class AppDatabase extends RoomDatabase {
|
||||
private final static String DB_NAME = "play_db";
|
||||
private static AppDatabase instance;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
package com.cappielloantonio.play.database.converter
|
||||
|
||||
import androidx.room.TypeConverter
|
||||
import java.util.*
|
||||
|
||||
class DateConverters {
|
||||
@TypeConverter
|
||||
fun fromTimestamp(value: Long?): Date? {
|
||||
return value?.let { Date(it) }
|
||||
}
|
||||
|
||||
@TypeConverter
|
||||
fun dateToTimestamp(date: Date?): Long? {
|
||||
return date?.time
|
||||
}
|
||||
}
|
||||
|
|
@ -15,28 +15,28 @@ public interface DownloadDao {
|
|||
@Query("SELECT * FROM download WHERE server=:server")
|
||||
LiveData<List<Download>> getAll(String server);
|
||||
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlistId IS NULL GROUP BY artistName LIMIT :size")
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlist_id IS NULL GROUP BY artist LIMIT :size")
|
||||
LiveData<List<Download>> getSampleArtist(int size, String server);
|
||||
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlistId IS NULL GROUP BY albumName LIMIT :size")
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlist_id IS NULL GROUP BY album LIMIT :size")
|
||||
LiveData<List<Download>> getSampleAlbum(int size, String server);
|
||||
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlistId IS NOT NULL GROUP BY playlistId LIMIT :size")
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlist_id IS NOT NULL GROUP BY playlist_id LIMIT :size")
|
||||
LiveData<List<Download>> getSamplePlaylist(int size, String server);
|
||||
|
||||
@Query("SELECT * FROM download WHERE server=:server LIMIT :size")
|
||||
LiveData<List<Download>> getSample(int size, String server);
|
||||
|
||||
@Query("SELECT * FROM download WHERE server=:server AND artistId=:artistId")
|
||||
@Query("SELECT * FROM download WHERE server=:server AND artist=:artistId")
|
||||
LiveData<List<Download>> getAllFromArtist(String server, String artistId);
|
||||
|
||||
@Query("SELECT * FROM download WHERE server=:server AND albumId=:albumId ORDER BY trackNumber ASC")
|
||||
@Query("SELECT * FROM download WHERE server=:server AND album=:albumId ORDER BY track ASC")
|
||||
LiveData<List<Download>> getAllFromAlbum(String server, String albumId);
|
||||
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlistId=:playlistId")
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlist_id=:playlistId")
|
||||
LiveData<List<Download>> getAllFromPlaylist(String server, String playlistId);
|
||||
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlistId IS NOT NULL GROUP BY playlistId")
|
||||
@Query("SELECT * FROM download WHERE server=:server AND playlist_id IS NOT NULL GROUP BY playlist_id")
|
||||
LiveData<List<Download>> getAllPlaylists(String server);
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
|
|
@ -45,7 +45,7 @@ public interface DownloadDao {
|
|||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
void insertAll(List<Download> downloads);
|
||||
|
||||
@Query("DELETE FROM download WHERE mediaId = :mediaId")
|
||||
@Query("DELETE FROM download WHERE media_id = :mediaId")
|
||||
void delete(String mediaId);
|
||||
|
||||
@Query("DELETE FROM download WHERE server=:server")
|
||||
|
|
|
|||
|
|
@ -7,14 +7,17 @@ import androidx.room.Insert;
|
|||
import androidx.room.OnConflictStrategy;
|
||||
import androidx.room.Query;
|
||||
|
||||
import com.cappielloantonio.play.model.Playlist;
|
||||
import com.cappielloantonio.play.subsonic.models.Playlist;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Dao
|
||||
public interface PlaylistDao {
|
||||
@Query("SELECT * FROM playlist WHERE server=:serverId")
|
||||
LiveData<List<Playlist>> getAll(String serverId);
|
||||
// @Query("SELECT * FROM playlist WHERE server=:serverId")
|
||||
// LiveData<List<Playlist>> getAll(String serverId);
|
||||
|
||||
@Query("SELECT * FROM playlist")
|
||||
LiveData<List<Playlist>> getAll();
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
void insert(Playlist playlist);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue