|
|
@ -62,10 +62,11 @@ object Restore { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
restore(Backup.backupPath) |
|
|
|
restoreDatabase() |
|
|
|
|
|
|
|
restoreConfig() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
suspend fun restore(path: String) { |
|
|
|
suspend fun restoreDatabase(path: String = Backup.backupPath) { |
|
|
|
withContext(IO) { |
|
|
|
withContext(IO) { |
|
|
|
fileToListT<Book>(path, "bookshelf.json")?.let { |
|
|
|
fileToListT<Book>(path, "bookshelf.json")?.let { |
|
|
|
App.db.bookDao().insert(*it.toTypedArray()) |
|
|
|
App.db.bookDao().insert(*it.toTypedArray()) |
|
|
@ -85,11 +86,16 @@ object Restore { |
|
|
|
fileToListT<ReplaceRule>(path, "replaceRule.json")?.let { |
|
|
|
fileToListT<ReplaceRule>(path, "replaceRule.json")?.let { |
|
|
|
App.db.replaceRuleDao().insert(*it.toTypedArray()) |
|
|
|
App.db.replaceRuleDao().insert(*it.toTypedArray()) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
suspend fun restoreConfig(path: String = Backup.backupPath) { |
|
|
|
|
|
|
|
withContext(IO) { |
|
|
|
try { |
|
|
|
try { |
|
|
|
val file = |
|
|
|
val file = |
|
|
|
FileUtils.createFileIfNotExist(path + File.separator + ReadBookConfig.readConfigFileName) |
|
|
|
FileUtils.createFileIfNotExist(path + File.separator + ReadBookConfig.readConfigFileName) |
|
|
|
val configFile = |
|
|
|
val configFile = |
|
|
|
File(App.INSTANCE.filesDir.absolutePath + File.separator + ReadBookConfig.readConfigFileName) |
|
|
|
FileUtils.getFile(App.INSTANCE.filesDir, ReadBookConfig.readConfigFileName) |
|
|
|
if (file.exists()) { |
|
|
|
if (file.exists()) { |
|
|
|
file.copyTo(configFile, true) |
|
|
|
file.copyTo(configFile, true) |
|
|
|
ReadBookConfig.upConfig() |
|
|
|
ReadBookConfig.upConfig() |
|
|
@ -109,6 +115,7 @@ object Restore { |
|
|
|
} |
|
|
|
} |
|
|
|
edit.putInt(PreferKey.versionCode, App.INSTANCE.versionCode) |
|
|
|
edit.putInt(PreferKey.versionCode, App.INSTANCE.versionCode) |
|
|
|
edit.apply() |
|
|
|
edit.apply() |
|
|
|
|
|
|
|
} |
|
|
|
ReadBookConfig.apply { |
|
|
|
ReadBookConfig.apply { |
|
|
|
styleSelect = App.INSTANCE.getPrefInt(PreferKey.readStyleSelect) |
|
|
|
styleSelect = App.INSTANCE.getPrefInt(PreferKey.readStyleSelect) |
|
|
|
shareLayout = App.INSTANCE.getPrefBoolean(PreferKey.shareLayout) |
|
|
|
shareLayout = App.INSTANCE.getPrefBoolean(PreferKey.shareLayout) |
|
|
@ -119,16 +126,14 @@ object Restore { |
|
|
|
} |
|
|
|
} |
|
|
|
ChapterProvider.upStyle() |
|
|
|
ChapterProvider.upStyle() |
|
|
|
ReadBook.loadContent() |
|
|
|
ReadBook.loadContent() |
|
|
|
|
|
|
|
} |
|
|
|
withContext(Main) { |
|
|
|
withContext(Main) { |
|
|
|
App.INSTANCE.applyDayNight() |
|
|
|
App.INSTANCE.applyDayNight() |
|
|
|
} |
|
|
|
|
|
|
|
if (!BuildConfig.DEBUG) |
|
|
|
if (!BuildConfig.DEBUG) |
|
|
|
LauncherIconHelp.changeIcon(App.INSTANCE.getPrefString(PreferKey.launcherIcon)) |
|
|
|
LauncherIconHelp.changeIcon(App.INSTANCE.getPrefString(PreferKey.launcherIcon)) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private inline fun <reified T> fileToListT(path: String, fileName: String): List<T>? { |
|
|
|
private inline fun <reified T> fileToListT(path: String, fileName: String): List<T>? { |
|
|
|
try { |
|
|
|
try { |
|
|
|
val file = FileUtils.createFileIfNotExist(path + File.separator + fileName) |
|
|
|
val file = FileUtils.createFileIfNotExist(path + File.separator + fileName) |
|
|
|