@ -2,12 +2,9 @@ package com.fongmi.android.tv.db;
import android.content.Context ;
import androidx.annotation.NonNull ;
import androidx.room.Database ;
import androidx.room.Room ;
import androidx.room.RoomDatabase ;
import androidx.room.migration.Migration ;
import androidx.sqlite.db.SupportSQLiteDatabase ;
import com.fongmi.android.tv.App ;
import com.fongmi.android.tv.Setting ;
@ -80,29 +77,7 @@ public abstract class AppDatabase extends RoomDatabase {
}
private static AppDatabase create ( Context context ) {
return Room . databaseBuilder ( context , AppDatabase . class , NAME )
. addMigrations ( MIGRATION_11_12 )
. addMigrations ( MIGRATION_12_13 )
. addMigrations ( MIGRATION_13_14 )
. addMigrations ( MIGRATION_14_15 )
. addMigrations ( MIGRATION_15_16 )
. addMigrations ( MIGRATION_16_17 )
. addMigrations ( MIGRATION_17_18 )
. addMigrations ( MIGRATION_18_19 )
. addMigrations ( MIGRATION_19_20 )
. addMigrations ( MIGRATION_20_21 )
. addMigrations ( MIGRATION_21_22 )
. addMigrations ( MIGRATION_22_23 )
. addMigrations ( MIGRATION_23_24 )
. addMigrations ( MIGRATION_24_25 )
. addMigrations ( MIGRATION_25_26 )
. addMigrations ( MIGRATION_26_27 )
. addMigrations ( MIGRATION_27_28 )
. addMigrations ( MIGRATION_28_29 )
. addMigrations ( MIGRATION_29_30 )
. addMigrations ( MIGRATION_30_31 )
. addMigrations ( MIGRATION_31_32 )
. allowMainThreadQueries ( ) . fallbackToDestructiveMigration ( ) . build ( ) ;
return Room . databaseBuilder ( context , AppDatabase . class , NAME ) . addMigrations ( Migrations . MIGRATION_30_31 ) . addMigrations ( Migrations . MIGRATION_31_32 ) . allowMainThreadQueries ( ) . fallbackToDestructiveMigration ( ) . build ( ) ;
}
public abstract KeepDao getKeepDao ( ) ;
@ -118,169 +93,4 @@ public abstract class AppDatabase extends RoomDatabase {
public abstract DeviceDao getDeviceDao ( ) ;
public abstract HistoryDao getHistoryDao ( ) ;
static final Migration MIGRATION_11_12 = new Migration ( 11 , 12 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE Config ADD COLUMN type INTEGER DEFAULT 0 NOT NULL" ) ;
database . execSQL ( "ALTER TABLE Config ADD COLUMN home TEXT DEFAULT NULL" ) ;
}
} ;
static final Migration MIGRATION_12_13 = new Migration ( 12 , 13 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE Keep ADD COLUMN type INTEGER DEFAULT 0 NOT NULL" ) ;
}
} ;
static final Migration MIGRATION_13_14 = new Migration ( 13 , 14 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "DROP INDEX IF EXISTS index_Config_url" ) ;
database . execSQL ( "CREATE UNIQUE INDEX IF NOT EXISTS index_Config_url_type ON Config(url, type)" ) ;
}
} ;
static final Migration MIGRATION_14_15 = new Migration ( 14 , 15 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE History ADD COLUMN scale INTEGER DEFAULT -1 NOT NULL" ) ;
}
} ;
static final Migration MIGRATION_15_16 = new Migration ( 15 , 16 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE History ADD COLUMN speed REAL DEFAULT 1 NOT NULL" ) ;
database . execSQL ( "ALTER TABLE History ADD COLUMN player INTEGER DEFAULT -1 NOT NULL" ) ;
}
} ;
static final Migration MIGRATION_16_17 = new Migration ( 16 , 17 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "CREATE TABLE IF NOT EXISTS `Track` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `type` INTEGER NOT NULL, `group` INTEGER NOT NULL, `track` INTEGER NOT NULL, `player` INTEGER NOT NULL, `key` TEXT, `name` TEXT, `selected` INTEGER NOT NULL)" ) ;
database . execSQL ( "CREATE UNIQUE INDEX IF NOT EXISTS `index_Track_key_player_type` ON `Track` (`key`, `player`, `type`)" ) ;
}
} ;
static final Migration MIGRATION_17_18 = new Migration ( 17 , 18 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE Config ADD COLUMN parse TEXT DEFAULT NULL" ) ;
}
} ;
static final Migration MIGRATION_18_19 = new Migration ( 18 , 19 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE Site ADD COLUMN changeable INTEGER DEFAULT 1" ) ;
}
} ;
static final Migration MIGRATION_19_20 = new Migration ( 19 , 20 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE Config ADD COLUMN name TEXT DEFAULT NULL" ) ;
}
} ;
static final Migration MIGRATION_20_21 = new Migration ( 20 , 21 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "CREATE TABLE IF NOT EXISTS `Device` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `uuid` TEXT, `name` TEXT, `ip` TEXT)" ) ;
database . execSQL ( "CREATE UNIQUE INDEX IF NOT EXISTS `index_Device_uuid_name` ON `Device` (`uuid`, `name`)" ) ;
}
} ;
static final Migration MIGRATION_21_22 = new Migration ( 21 , 22 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE Device ADD COLUMN type INTEGER DEFAULT 0 NOT NULL" ) ;
}
} ;
static final Migration MIGRATION_22_23 = new Migration ( 22 , 23 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "UPDATE History SET player = 2 WHERE player = 0" ) ;
}
} ;
static final Migration MIGRATION_23_24 = new Migration ( 23 , 24 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE Track ADD COLUMN `adaptive` INTEGER NOT NULL DEFAULT 0" ) ;
}
} ;
static final Migration MIGRATION_24_25 = new Migration ( 24 , 25 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE Site ADD COLUMN recordable INTEGER DEFAULT 1" ) ;
}
} ;
static final Migration MIGRATION_25_26 = new Migration ( 25 , 26 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "CREATE TABLE Site_Backup (`key` TEXT NOT NULL, name TEXT, searchable INTEGER, changeable INTEGER, recordable INTEGER, PRIMARY KEY (`key`))" ) ;
database . execSQL ( "INSERT INTO Site_Backup SELECT `key`, name, searchable, changeable, recordable FROM Site" ) ;
database . execSQL ( "DROP TABLE Site" ) ;
database . execSQL ( "ALTER TABLE Site_Backup RENAME to Site" ) ;
}
} ;
static final Migration MIGRATION_26_27 = new Migration ( 26 , 27 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "CREATE TABLE IF NOT EXISTS `Live` (`name` TEXT NOT NULL, `boot` INTEGER NOT NULL, `pass` INTEGER NOT NULL, PRIMARY KEY(`name`))" ) ;
}
} ;
static final Migration MIGRATION_27_28 = new Migration ( 27 , 28 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
Prefers . remove ( "danmu_size" ) ;
}
} ;
static final Migration MIGRATION_28_29 = new Migration ( 28 , 29 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "CREATE TABLE Site_Backup (`key` TEXT NOT NULL, searchable INTEGER, changeable INTEGER, PRIMARY KEY (`key`))" ) ;
database . execSQL ( "INSERT INTO Site_Backup SELECT `key`, searchable, changeable FROM Site" ) ;
database . execSQL ( "DROP TABLE Site" ) ;
database . execSQL ( "ALTER TABLE Site_Backup RENAME to Site" ) ;
}
} ;
static final Migration MIGRATION_29_30 = new Migration ( 29 , 30 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "ALTER TABLE Config ADD COLUMN logo TEXT DEFAULT NULL" ) ;
}
} ;
static final Migration MIGRATION_30_31 = new Migration ( 30 , 31 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "CREATE TABLE Track_Backup (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `type` INTEGER NOT NULL, `group` INTEGER NOT NULL, `track` INTEGER NOT NULL, `key` TEXT, `name` TEXT, `selected` INTEGER NOT NULL, `adaptive` INTEGER NOT NULL)" ) ;
database . execSQL ( "INSERT INTO Track_Backup SELECT id, type, `group`, track, `key`, name, selected, adaptive FROM Track" ) ;
database . execSQL ( "DROP TABLE Track" ) ;
database . execSQL ( "ALTER TABLE Track_Backup RENAME to Track" ) ;
database . execSQL ( "CREATE UNIQUE INDEX IF NOT EXISTS `index_Track_key_type` ON `Track` (`key`, `type`)" ) ;
}
} ;
static final Migration MIGRATION_31_32 = new Migration ( 31 , 32 ) {
@Override
public void migrate ( @NonNull SupportSQLiteDatabase database ) {
database . execSQL ( "CREATE TABLE History_Backup (`key` TEXT NOT NULL, `vodPic` TEXT, `vodName` TEXT, `vodFlag` TEXT, `vodRemarks` TEXT, `episodeUrl` TEXT, `revSort` INTEGER NOT NULL, `revPlay` INTEGER NOT NULL, `createTime` INTEGER NOT NULL, `opening` INTEGER NOT NULL, `ending` INTEGER NOT NULL, `position` INTEGER NOT NULL, `duration` INTEGER NOT NULL, `speed` REAL NOT NULL, `scale` INTEGER NOT NULL, `cid` INTEGER NOT NULL, PRIMARY KEY(`key`))" ) ;
database . execSQL ( "INSERT INTO History_Backup SELECT `key`, `vodPic`, `vodName`, `vodFlag`, `vodRemarks`, `episodeUrl`, `revSort`, `revPlay`, `createTime`, `opening`, `ending`, `position`, `duration`, `speed`, `scale`, `cid` FROM History" ) ;
database . execSQL ( "DROP TABLE History" ) ;
database . execSQL ( "ALTER TABLE History_Backup RENAME to History" ) ;
}
} ;
}