Skip to content

Commit 204d956

Browse files
authored
Merge pull request #4370 from TranceLove/feature/room-2.6
Update Room library to 2.6.1
2 parents d998976 + edf6713 commit 204d956

19 files changed

Lines changed: 280 additions & 63 deletions

File tree

app/src/main/java/com/amaze/filemanager/database/ExplorerDatabase.kt

Lines changed: 101 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ abstract class ExplorerDatabase : RoomDatabase() {
7070

7171
companion object {
7272
private const val DATABASE_NAME = "explorer.db"
73-
const val DATABASE_VERSION = 11
73+
const val DATABASE_VERSION = 12
7474
const val TABLE_TAB = "tab"
7575
const val TABLE_CLOUD_PERSIST = "cloud"
7676
const val TABLE_ENCRYPTED = "encrypted"
@@ -317,7 +317,7 @@ abstract class ExplorerDatabase : RoomDatabase() {
317317
}
318318

319319
internal val MIGRATION_10_11: Migration =
320-
object : Migration(10, DATABASE_VERSION) {
320+
object : Migration(10, 11) {
321321
override fun migrate(database: SupportSQLiteDatabase) {
322322
database.execSQL(
323323
"UPDATE " +
@@ -331,6 +331,104 @@ abstract class ExplorerDatabase : RoomDatabase() {
331331
}
332332
}
333333

334+
internal val MIGRATION_11_12: Migration =
335+
object : Migration(11, DATABASE_VERSION) {
336+
override fun migrate(database: SupportSQLiteDatabase) {
337+
database.execSQL(
338+
"CREATE TABLE " +
339+
TEMP_TABLE_PREFIX +
340+
TABLE_TAB +
341+
"(" +
342+
COLUMN_TAB_NO +
343+
" INTEGER PRIMARY KEY NOT NULL, " +
344+
COLUMN_PATH +
345+
" TEXT NOT NULL, " +
346+
COLUMN_HOME +
347+
" TEXT NOT NULL)",
348+
)
349+
database.execSQL(
350+
"INSERT INTO " +
351+
TEMP_TABLE_PREFIX +
352+
TABLE_TAB +
353+
"(" +
354+
COLUMN_TAB_NO +
355+
"," +
356+
COLUMN_PATH +
357+
"," +
358+
COLUMN_HOME +
359+
")" +
360+
" SELECT " +
361+
COLUMN_TAB_NO +
362+
"," +
363+
COLUMN_PATH +
364+
"," +
365+
COLUMN_HOME +
366+
" FROM " +
367+
TABLE_TAB,
368+
)
369+
database.execSQL("DROP TABLE $TABLE_TAB")
370+
database.execSQL(
371+
"ALTER TABLE $TEMP_TABLE_PREFIX$TABLE_TAB RENAME TO $TABLE_TAB",
372+
)
373+
374+
database.execSQL(
375+
"CREATE TABLE " +
376+
TEMP_TABLE_PREFIX +
377+
TABLE_ENCRYPTED +
378+
"(" +
379+
COLUMN_ENCRYPTED_ID +
380+
" INTEGER PRIMARY KEY NOT NULL," +
381+
COLUMN_ENCRYPTED_PATH +
382+
" TEXT NOT NULL," +
383+
COLUMN_ENCRYPTED_PASSWORD +
384+
" TEXT NOT NULL)",
385+
)
386+
database.execSQL(
387+
"INSERT INTO " +
388+
TEMP_TABLE_PREFIX +
389+
TABLE_ENCRYPTED +
390+
" SELECT * FROM " +
391+
TABLE_ENCRYPTED,
392+
)
393+
database.execSQL("DROP TABLE $TABLE_ENCRYPTED")
394+
database.execSQL(
395+
"ALTER TABLE " +
396+
TEMP_TABLE_PREFIX +
397+
TABLE_ENCRYPTED +
398+
" RENAME TO " +
399+
TABLE_ENCRYPTED,
400+
)
401+
402+
database.execSQL(
403+
"CREATE TABLE " +
404+
TEMP_TABLE_PREFIX +
405+
TABLE_CLOUD_PERSIST +
406+
"(" +
407+
COLUMN_CLOUD_ID +
408+
" INTEGER PRIMARY KEY NOT NULL," +
409+
COLUMN_CLOUD_SERVICE +
410+
" INTEGER," +
411+
COLUMN_CLOUD_PERSIST +
412+
" TEXT NOT NULL)",
413+
)
414+
database.execSQL(
415+
"INSERT INTO " +
416+
TEMP_TABLE_PREFIX +
417+
TABLE_CLOUD_PERSIST +
418+
" SELECT * FROM " +
419+
TABLE_CLOUD_PERSIST,
420+
)
421+
database.execSQL("DROP TABLE $TABLE_CLOUD_PERSIST")
422+
database.execSQL(
423+
"ALTER TABLE " +
424+
TEMP_TABLE_PREFIX +
425+
TABLE_CLOUD_PERSIST +
426+
" RENAME TO " +
427+
TABLE_CLOUD_PERSIST,
428+
)
429+
}
430+
}
431+
334432
/**
335433
* Initialize the database. Optionally, may provide a custom way to create the database
336434
* with supplied [Context].
@@ -354,6 +452,7 @@ abstract class ExplorerDatabase : RoomDatabase() {
354452
.addMigrations(MIGRATION_8_9)
355453
.addMigrations(MIGRATION_9_10)
356454
.addMigrations(MIGRATION_10_11)
455+
.addMigrations(MIGRATION_11_12)
357456
.allowMainThreadQueries()
358457
.build()
359458
}

app/src/main/java/com/amaze/filemanager/database/UtilitiesDatabase.kt

Lines changed: 110 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ abstract class UtilitiesDatabase : RoomDatabase() {
110110
companion object {
111111
private val logger = LoggerFactory.getLogger(UtilitiesDatabase::class.java)
112112
private const val DATABASE_NAME = "utilities.db"
113-
const val DATABASE_VERSION = 6
113+
const val DATABASE_VERSION = 7
114114
const val TABLE_HISTORY = "history"
115115
const val TABLE_HIDDEN = "hidden"
116116
const val TABLE_LIST = "list"
@@ -136,7 +136,7 @@ abstract class UtilitiesDatabase : RoomDatabase() {
136136
COLUMN_ID +
137137
" INTEGER PRIMARY KEY," +
138138
COLUMN_PATH +
139-
" TEXT UNIQUE" +
139+
" TEXT UNIQUE NOT NULL" +
140140
");"
141141
)
142142
private const val queryHidden = (
@@ -146,7 +146,7 @@ abstract class UtilitiesDatabase : RoomDatabase() {
146146
COLUMN_ID +
147147
" INTEGER PRIMARY KEY," +
148148
COLUMN_PATH +
149-
" TEXT UNIQUE" +
149+
" TEXT UNIQUE NOT NULL" +
150150
");"
151151
)
152152
private const val queryList = (
@@ -156,7 +156,7 @@ abstract class UtilitiesDatabase : RoomDatabase() {
156156
COLUMN_ID +
157157
" INTEGER PRIMARY KEY," +
158158
COLUMN_PATH +
159-
" TEXT UNIQUE" +
159+
" TEXT UNIQUE NOT NULL" +
160160
");"
161161
)
162162
private const val queryGrid = (
@@ -166,7 +166,7 @@ abstract class UtilitiesDatabase : RoomDatabase() {
166166
COLUMN_ID +
167167
" INTEGER PRIMARY KEY," +
168168
COLUMN_PATH +
169-
" TEXT UNIQUE" +
169+
" TEXT UNIQUE NOT NULL" +
170170
");"
171171
)
172172
private const val queryBookmarks = (
@@ -176,33 +176,33 @@ abstract class UtilitiesDatabase : RoomDatabase() {
176176
COLUMN_ID +
177177
" INTEGER PRIMARY KEY," +
178178
COLUMN_NAME +
179-
" TEXT," +
179+
" TEXT NOT NULL," +
180180
COLUMN_PATH +
181-
" TEXT UNIQUE" +
181+
" TEXT UNIQUE NOT NULL" +
182182
");"
183183
)
184184
private const val querySmb = (
185185
"CREATE TABLE IF NOT EXISTS " +
186186
TABLE_SMB +
187187
" (" +
188188
COLUMN_ID +
189-
" INTEGER PRIMARY KEY," +
189+
" INTEGER PRIMARY KEY NOT NULL," +
190190
COLUMN_NAME +
191-
" TEXT," +
191+
" TEXT NOT NULL," +
192192
COLUMN_PATH +
193-
" TEXT UNIQUE" +
193+
" TEXT UNIQUE NOT NULL" +
194194
");"
195195
)
196196
private const val querySftp = (
197197
"CREATE TABLE IF NOT EXISTS " +
198198
TABLE_SFTP +
199199
" (" +
200200
COLUMN_ID +
201-
" INTEGER PRIMARY KEY," +
201+
" INTEGER PRIMARY KEY NOT NULL," +
202202
COLUMN_NAME +
203-
" TEXT," +
203+
" TEXT NOT NULL," +
204204
COLUMN_PATH +
205-
" TEXT UNIQUE," +
205+
" TEXT UNIQUE NOT NULL," +
206206
COLUMN_HOST_PUBKEY +
207207
" TEXT," +
208208
COLUMN_PRIVATE_KEY_NAME +
@@ -481,7 +481,7 @@ abstract class UtilitiesDatabase : RoomDatabase() {
481481
}
482482

483483
internal val MIGRATION_5_6: Migration =
484-
object : Migration(5, DATABASE_VERSION) {
484+
object : Migration(5, 6) {
485485
override fun migrate(database: SupportSQLiteDatabase) {
486486
val updateSqls: MutableList<String> = ArrayList()
487487
updateSqls.addAll(migratePasswordInUris(database, TABLE_SMB))
@@ -492,6 +492,101 @@ abstract class UtilitiesDatabase : RoomDatabase() {
492492
}
493493
}
494494

495+
internal val MIGRATION_6_7: Migration =
496+
object : Migration(6, DATABASE_VERSION) {
497+
override fun migrate(database: SupportSQLiteDatabase) {
498+
var backupTable = TEMP_TABLE_PREFIX + TABLE_BOOKMARKS
499+
database.execSQL(
500+
queryBookmarks
501+
.replace(TABLE_BOOKMARKS, backupTable)
502+
.replace("PRIMARY KEY,", "PRIMARY KEY NOT NULL,"),
503+
)
504+
database.execSQL(
505+
"INSERT INTO " +
506+
backupTable +
507+
"(" +
508+
COLUMN_NAME +
509+
"," +
510+
COLUMN_PATH +
511+
") SELECT DISTINCT(" +
512+
COLUMN_NAME +
513+
"), " +
514+
COLUMN_PATH +
515+
" FROM " +
516+
TABLE_BOOKMARKS,
517+
)
518+
database.execSQL("DROP TABLE $TABLE_BOOKMARKS;")
519+
database.execSQL("ALTER TABLE $backupTable RENAME TO $TABLE_BOOKMARKS;")
520+
database.execSQL(
521+
"CREATE UNIQUE INDEX 'bookmarks_idx' ON " +
522+
TABLE_BOOKMARKS +
523+
"(" +
524+
COLUMN_NAME +
525+
", " +
526+
COLUMN_PATH +
527+
");",
528+
)
529+
backupTable = TEMP_TABLE_PREFIX + TABLE_GRID
530+
database.execSQL(
531+
queryGrid
532+
.replace(TABLE_GRID, backupTable)
533+
.replace("PRIMARY KEY,", "PRIMARY KEY NOT NULL,"),
534+
)
535+
database.execSQL(
536+
"INSERT INTO $backupTable SELECT * FROM $TABLE_GRID group by path;",
537+
)
538+
database.execSQL("DROP TABLE $TABLE_GRID;")
539+
database.execSQL("ALTER TABLE $backupTable RENAME TO $TABLE_GRID;")
540+
backupTable = TEMP_TABLE_PREFIX + TABLE_HIDDEN
541+
database.execSQL(
542+
queryHidden
543+
.replace(TABLE_HIDDEN, backupTable)
544+
.replace("PRIMARY KEY,", "PRIMARY KEY NOT NULL,"),
545+
)
546+
database.execSQL(
547+
"INSERT INTO $backupTable SELECT * FROM $TABLE_HIDDEN group by path;",
548+
)
549+
database.execSQL("DROP TABLE $TABLE_HIDDEN;")
550+
database.execSQL("ALTER TABLE $backupTable RENAME TO $TABLE_HIDDEN;")
551+
backupTable = TEMP_TABLE_PREFIX + TABLE_HISTORY
552+
database.execSQL(
553+
queryHistory
554+
.replace(TABLE_HISTORY, backupTable)
555+
.replace("PRIMARY KEY,", "PRIMARY KEY NOT NULL,"),
556+
)
557+
database.execSQL(
558+
"INSERT INTO $backupTable SELECT * FROM $TABLE_HISTORY group by path;",
559+
)
560+
database.execSQL("DROP TABLE $TABLE_HISTORY;")
561+
database.execSQL("ALTER TABLE $backupTable RENAME TO $TABLE_HISTORY;")
562+
backupTable = TEMP_TABLE_PREFIX + TABLE_LIST
563+
database.execSQL(
564+
queryList
565+
.replace(TABLE_LIST, backupTable)
566+
.replace("PRIMARY KEY,", "PRIMARY KEY NOT NULL,"),
567+
)
568+
database.execSQL(
569+
"INSERT INTO $backupTable SELECT * FROM $TABLE_LIST group by path;",
570+
)
571+
database.execSQL("DROP TABLE $TABLE_LIST;")
572+
database.execSQL("ALTER TABLE $backupTable RENAME TO $TABLE_LIST;")
573+
backupTable = TEMP_TABLE_PREFIX + TABLE_SMB
574+
database.execSQL(querySmb.replace(TABLE_SMB, backupTable))
575+
database.execSQL(
576+
"INSERT INTO $backupTable SELECT * FROM $TABLE_SMB group by path;",
577+
)
578+
database.execSQL("DROP TABLE $TABLE_SMB;")
579+
database.execSQL("ALTER TABLE $backupTable RENAME TO $TABLE_SMB;")
580+
backupTable = TEMP_TABLE_PREFIX + TABLE_SFTP
581+
database.execSQL(querySftp.replace(TABLE_SFTP, backupTable))
582+
database.execSQL(
583+
"INSERT INTO $backupTable SELECT * FROM $TABLE_SFTP group by path;",
584+
)
585+
database.execSQL("DROP TABLE $TABLE_SFTP;")
586+
database.execSQL("ALTER TABLE $backupTable RENAME TO $TABLE_SFTP;")
587+
}
588+
}
589+
495590
/**
496591
* Initialize the database. Optionally, may provide a custom way to create the database
497592
* with supplied [Context].
@@ -512,6 +607,7 @@ abstract class UtilitiesDatabase : RoomDatabase() {
512607
MIGRATION_3_4,
513608
MIGRATION_4_5,
514609
MIGRATION_5_6,
610+
MIGRATION_6_7,
515611
)
516612
.build()
517613
}

0 commit comments

Comments
 (0)