2023-06-17 15:30:23 +02:00
|
|
|
package com.cappielloantonio.tempo.database;
|
2020-11-20 15:38:08 +01:00
|
|
|
|
2023-08-02 10:47:37 +02:00
|
|
|
import androidx.room.AutoMigration;
|
2020-11-20 15:38:08 +01:00
|
|
|
import androidx.room.Database;
|
|
|
|
|
import androidx.room.Room;
|
|
|
|
|
import androidx.room.RoomDatabase;
|
2023-03-06 21:59:10 +01:00
|
|
|
import androidx.room.TypeConverters;
|
2020-11-20 15:38:08 +01:00
|
|
|
|
2023-06-17 15:30:23 +02:00
|
|
|
import com.cappielloantonio.tempo.App;
|
|
|
|
|
import com.cappielloantonio.tempo.database.converter.DateConverters;
|
|
|
|
|
import com.cappielloantonio.tempo.database.dao.ChronologyDao;
|
|
|
|
|
import com.cappielloantonio.tempo.database.dao.DownloadDao;
|
2023-08-02 10:47:37 +02:00
|
|
|
import com.cappielloantonio.tempo.database.dao.FavoriteDao;
|
2023-06-17 15:30:23 +02:00
|
|
|
import com.cappielloantonio.tempo.database.dao.QueueDao;
|
|
|
|
|
import com.cappielloantonio.tempo.database.dao.RecentSearchDao;
|
|
|
|
|
import com.cappielloantonio.tempo.database.dao.ServerDao;
|
2024-01-03 00:45:22 +01:00
|
|
|
import com.cappielloantonio.tempo.database.dao.SessionMediaItemDao;
|
2023-06-17 15:30:23 +02:00
|
|
|
import com.cappielloantonio.tempo.model.Chronology;
|
|
|
|
|
import com.cappielloantonio.tempo.model.Download;
|
2023-08-02 10:47:37 +02:00
|
|
|
import com.cappielloantonio.tempo.model.Favorite;
|
2023-06-17 15:30:23 +02:00
|
|
|
import com.cappielloantonio.tempo.model.Queue;
|
|
|
|
|
import com.cappielloantonio.tempo.model.RecentSearch;
|
|
|
|
|
import com.cappielloantonio.tempo.model.Server;
|
2024-01-03 00:45:22 +01:00
|
|
|
import com.cappielloantonio.tempo.model.SessionMediaItem;
|
2020-11-20 15:38:08 +01:00
|
|
|
|
2021-09-04 15:21:36 +02:00
|
|
|
@Database(
|
2024-01-03 00:45:22 +01:00
|
|
|
version = 8,
|
|
|
|
|
entities = {Queue.class, Server.class, RecentSearch.class, Download.class, Chronology.class, Favorite.class, SessionMediaItem.class},
|
|
|
|
|
autoMigrations = {@AutoMigration(from = 7, to = 8)}
|
2021-09-04 15:21:36 +02:00
|
|
|
)
|
2023-03-06 21:59:10 +01:00
|
|
|
@TypeConverters({DateConverters.class})
|
2020-11-20 15:38:08 +01:00
|
|
|
public abstract class AppDatabase extends RoomDatabase {
|
2023-06-04 11:36:56 +02:00
|
|
|
private final static String DB_NAME = "tempo_db";
|
2021-04-27 11:01:02 +02:00
|
|
|
private static AppDatabase instance;
|
2020-11-20 15:38:08 +01:00
|
|
|
|
2023-03-10 15:21:02 +01:00
|
|
|
public static synchronized AppDatabase getInstance() {
|
|
|
|
|
if (instance == null) {
|
|
|
|
|
instance = Room.databaseBuilder(App.getContext(), AppDatabase.class, DB_NAME)
|
2020-11-20 15:38:08 +01:00
|
|
|
.fallbackToDestructiveMigration()
|
|
|
|
|
.build();
|
|
|
|
|
}
|
2022-03-08 15:09:56 +01:00
|
|
|
|
2020-11-20 15:38:08 +01:00
|
|
|
return instance;
|
|
|
|
|
}
|
|
|
|
|
|
2021-07-28 15:28:32 +02:00
|
|
|
public abstract QueueDao queueDao();
|
2020-11-21 13:54:49 +01:00
|
|
|
|
2021-08-08 19:21:56 +02:00
|
|
|
public abstract ServerDao serverDao();
|
|
|
|
|
|
2020-11-21 13:54:49 +01:00
|
|
|
public abstract RecentSearchDao recentSearchDao();
|
2021-07-29 17:12:55 +02:00
|
|
|
|
|
|
|
|
public abstract DownloadDao downloadDao();
|
2021-11-25 22:48:21 +01:00
|
|
|
|
2022-12-28 14:25:59 +01:00
|
|
|
public abstract ChronologyDao chronologyDao();
|
2023-08-02 10:47:37 +02:00
|
|
|
|
|
|
|
|
public abstract FavoriteDao favoriteDao();
|
2024-01-03 00:45:22 +01:00
|
|
|
|
|
|
|
|
public abstract SessionMediaItemDao sessionMediaItemDao();
|
2020-11-20 15:38:08 +01:00
|
|
|
}
|