mirror of
https://github.com/aniyomiorg/aniyomi.git
synced 2024-11-23 13:23:28 +03:00
Address minor build warnings
This commit is contained in:
parent
44383ff950
commit
b051e37ab7
4 changed files with 46 additions and 70 deletions
|
@ -70,7 +70,6 @@ class BackupManager(
|
||||||
* @param uri path of Uri
|
* @param uri path of Uri
|
||||||
* @param isAutoBackup backup called from scheduled backup job
|
* @param isAutoBackup backup called from scheduled backup job
|
||||||
*/
|
*/
|
||||||
@Suppress("BlockingMethodInNonBlockingContext")
|
|
||||||
suspend fun createBackup(uri: Uri, flags: Int, isAutoBackup: Boolean): String {
|
suspend fun createBackup(uri: Uri, flags: Int, isAutoBackup: Boolean): String {
|
||||||
if (!context.hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
if (!context.hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||||
throw IllegalStateException(context.getString(R.string.missing_storage_permission))
|
throw IllegalStateException(context.getString(R.string.missing_storage_permission))
|
||||||
|
@ -222,10 +221,10 @@ class BackupManager(
|
||||||
}
|
}
|
||||||
|
|
||||||
internal suspend fun restoreExistingManga(manga: Manga, dbManga: Mangas): Manga {
|
internal suspend fun restoreExistingManga(manga: Manga, dbManga: Mangas): Manga {
|
||||||
var manga = manga.copy(id = dbManga._id)
|
var updatedManga = manga.copy(id = dbManga._id)
|
||||||
manga = manga.copyFrom(dbManga)
|
updatedManga = updatedManga.copyFrom(dbManga)
|
||||||
updateManga(manga)
|
updateManga(updatedManga)
|
||||||
return manga
|
return updatedManga
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -298,7 +297,7 @@ class BackupManager(
|
||||||
dbCategories.firstOrNull { dbCategory ->
|
dbCategories.firstOrNull { dbCategory ->
|
||||||
dbCategory.name == backupCategory.name
|
dbCategory.name == backupCategory.name
|
||||||
}?.let { dbCategory ->
|
}?.let { dbCategory ->
|
||||||
mangaCategoriesToUpdate.add(Pair(manga.id!!, dbCategory.id))
|
mangaCategoriesToUpdate.add(Pair(manga.id, dbCategory.id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -306,7 +305,7 @@ class BackupManager(
|
||||||
// Update database
|
// Update database
|
||||||
if (mangaCategoriesToUpdate.isNotEmpty()) {
|
if (mangaCategoriesToUpdate.isNotEmpty()) {
|
||||||
handler.await(true) {
|
handler.await(true) {
|
||||||
mangas_categoriesQueries.deleteMangaCategoryByMangaId(manga.id!!)
|
mangas_categoriesQueries.deleteMangaCategoryByMangaId(manga.id)
|
||||||
mangaCategoriesToUpdate.forEach { (mangaId, categoryId) ->
|
mangaCategoriesToUpdate.forEach { (mangaId, categoryId) ->
|
||||||
mangas_categoriesQueries.insert(mangaId, categoryId)
|
mangas_categoriesQueries.insert(mangaId, categoryId)
|
||||||
}
|
}
|
||||||
|
@ -370,37 +369,38 @@ class BackupManager(
|
||||||
* @param tracks the track list to restore.
|
* @param tracks the track list to restore.
|
||||||
*/
|
*/
|
||||||
internal suspend fun restoreTracking(manga: Manga, tracks: List<tachiyomi.domain.track.model.Track>) {
|
internal suspend fun restoreTracking(manga: Manga, tracks: List<tachiyomi.domain.track.model.Track>) {
|
||||||
// Fix foreign keys with the current manga id
|
|
||||||
val tracks = tracks.map { it.copy(mangaId = manga.id!!) }
|
|
||||||
|
|
||||||
// Get tracks from database
|
// Get tracks from database
|
||||||
val dbTracks = handler.awaitList { manga_syncQueries.getTracksByMangaId(manga.id!!) }
|
val dbTracks = handler.awaitList { manga_syncQueries.getTracksByMangaId(manga.id) }
|
||||||
val toUpdate = mutableListOf<Manga_sync>()
|
val toUpdate = mutableListOf<Manga_sync>()
|
||||||
val toInsert = mutableListOf<tachiyomi.domain.track.model.Track>()
|
val toInsert = mutableListOf<tachiyomi.domain.track.model.Track>()
|
||||||
|
|
||||||
tracks.forEach { track ->
|
tracks
|
||||||
var isInDatabase = false
|
// Fix foreign keys with the current manga id
|
||||||
for (dbTrack in dbTracks) {
|
.map { it.copy(mangaId = manga.id) }
|
||||||
if (track.syncId == dbTrack.sync_id) {
|
.forEach { track ->
|
||||||
// The sync is already in the db, only update its fields
|
var isInDatabase = false
|
||||||
var temp = dbTrack
|
for (dbTrack in dbTracks) {
|
||||||
if (track.remoteId != dbTrack.remote_id) {
|
if (track.syncId == dbTrack.sync_id) {
|
||||||
temp = temp.copy(remote_id = track.remoteId)
|
// The sync is already in the db, only update its fields
|
||||||
|
var temp = dbTrack
|
||||||
|
if (track.remoteId != dbTrack.remote_id) {
|
||||||
|
temp = temp.copy(remote_id = track.remoteId)
|
||||||
|
}
|
||||||
|
if (track.libraryId != dbTrack.library_id) {
|
||||||
|
temp = temp.copy(library_id = track.libraryId)
|
||||||
|
}
|
||||||
|
temp = temp.copy(last_chapter_read = max(dbTrack.last_chapter_read, track.lastChapterRead))
|
||||||
|
isInDatabase = true
|
||||||
|
toUpdate.add(temp)
|
||||||
|
break
|
||||||
}
|
}
|
||||||
if (track.libraryId != dbTrack.library_id) {
|
}
|
||||||
temp = temp.copy(library_id = track.libraryId)
|
if (!isInDatabase) {
|
||||||
}
|
// Insert new sync. Let the db assign the id
|
||||||
temp = temp.copy(last_chapter_read = max(dbTrack.last_chapter_read, track.lastChapterRead))
|
toInsert.add(track.copy(id = 0))
|
||||||
isInDatabase = true
|
|
||||||
toUpdate.add(temp)
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!isInDatabase) {
|
|
||||||
// Insert new sync. Let the db assign the id
|
|
||||||
toInsert.add(track.copy(id = 0))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Update database
|
// Update database
|
||||||
if (toUpdate.isNotEmpty()) {
|
if (toUpdate.isNotEmpty()) {
|
||||||
handler.await(true) {
|
handler.await(true) {
|
||||||
|
@ -446,25 +446,25 @@ class BackupManager(
|
||||||
}
|
}
|
||||||
|
|
||||||
internal suspend fun restoreChapters(manga: Manga, chapters: List<tachiyomi.domain.chapter.model.Chapter>) {
|
internal suspend fun restoreChapters(manga: Manga, chapters: List<tachiyomi.domain.chapter.model.Chapter>) {
|
||||||
val dbChapters = handler.awaitList { chaptersQueries.getChaptersByMangaId(manga.id!!) }
|
val dbChapters = handler.awaitList { chaptersQueries.getChaptersByMangaId(manga.id) }
|
||||||
|
|
||||||
val processed = chapters.map { chapter ->
|
val processed = chapters.map { chapter ->
|
||||||
var chapter = chapter
|
var updatedChapter = chapter
|
||||||
val dbChapter = dbChapters.find { it.url == chapter.url }
|
val dbChapter = dbChapters.find { it.url == updatedChapter.url }
|
||||||
if (dbChapter != null) {
|
if (dbChapter != null) {
|
||||||
chapter = chapter.copy(id = dbChapter._id)
|
updatedChapter = updatedChapter.copy(id = dbChapter._id)
|
||||||
chapter = chapter.copyFrom(dbChapter)
|
updatedChapter = updatedChapter.copyFrom(dbChapter)
|
||||||
if (dbChapter.read && !chapter.read) {
|
if (dbChapter.read && !updatedChapter.read) {
|
||||||
chapter = chapter.copy(read = dbChapter.read, lastPageRead = dbChapter.last_page_read)
|
updatedChapter = updatedChapter.copy(read = true, lastPageRead = dbChapter.last_page_read)
|
||||||
} else if (chapter.lastPageRead == 0L && dbChapter.last_page_read != 0L) {
|
} else if (updatedChapter.lastPageRead == 0L && dbChapter.last_page_read != 0L) {
|
||||||
chapter = chapter.copy(lastPageRead = dbChapter.last_page_read)
|
updatedChapter = updatedChapter.copy(lastPageRead = dbChapter.last_page_read)
|
||||||
}
|
}
|
||||||
if (!chapter.bookmark && dbChapter.bookmark) {
|
if (!updatedChapter.bookmark && dbChapter.bookmark) {
|
||||||
chapter = chapter.copy(bookmark = dbChapter.bookmark)
|
updatedChapter = updatedChapter.copy(bookmark = true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
chapter.copy(mangaId = manga.id ?: -1)
|
updatedChapter.copy(mangaId = manga.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
val newChapters = processed.groupBy { it.id > 0 }
|
val newChapters = processed.groupBy { it.id > 0 }
|
||||||
|
@ -564,30 +564,6 @@ class BackupManager(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Updates a list of chapters
|
|
||||||
*/
|
|
||||||
private suspend fun updateChapters(chapters: List<tachiyomi.domain.chapter.model.Chapter>) {
|
|
||||||
handler.await(true) {
|
|
||||||
chapters.forEach { chapter ->
|
|
||||||
chaptersQueries.update(
|
|
||||||
chapter.mangaId,
|
|
||||||
chapter.url,
|
|
||||||
chapter.name,
|
|
||||||
chapter.scanlator,
|
|
||||||
chapter.read.toLong(),
|
|
||||||
chapter.bookmark.toLong(),
|
|
||||||
chapter.lastPageRead,
|
|
||||||
chapter.chapterNumber.toDouble(),
|
|
||||||
chapter.sourceOrder,
|
|
||||||
chapter.dateFetch,
|
|
||||||
chapter.dateUpload,
|
|
||||||
chapter.id,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates a list of chapters with known database ids
|
* Updates a list of chapters with known database ids
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -29,6 +29,7 @@ data class BackupTracking(
|
||||||
@ProtoNumber(100) var mediaId: Long = 0,
|
@ProtoNumber(100) var mediaId: Long = 0,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
fun getTrackingImpl(): Track {
|
fun getTrackingImpl(): Track {
|
||||||
return Track(
|
return Track(
|
||||||
id = -1,
|
id = -1,
|
||||||
|
|
|
@ -118,7 +118,6 @@ class MangaCoverScreenModel(
|
||||||
fun editCover(context: Context, data: Uri) {
|
fun editCover(context: Context, data: Uri) {
|
||||||
val manga = state.value ?: return
|
val manga = state.value ?: return
|
||||||
coroutineScope.launchIO {
|
coroutineScope.launchIO {
|
||||||
@Suppress("BlockingMethodInNonBlockingContext")
|
|
||||||
context.contentResolver.openInputStream(data)?.use {
|
context.contentResolver.openInputStream(data)?.use {
|
||||||
try {
|
try {
|
||||||
manga.editCover(Injekt.get(), it, updateManga, coverCache)
|
manga.editCover(Injekt.get(), it, updateManga, coverCache)
|
||||||
|
|
|
@ -605,8 +605,8 @@ class MangaInfoScreenModel(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isFavorited && !successState.hasPromptedToAddBefore) {
|
if (!isFavorited && !successState.hasPromptedToAddBefore) {
|
||||||
updateSuccessState { successState ->
|
updateSuccessState { state ->
|
||||||
successState.copy(hasPromptedToAddBefore = true)
|
state.copy(hasPromptedToAddBefore = true)
|
||||||
}
|
}
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
val result = snackbarHostState.showSnackbar(
|
val result = snackbarHostState.showSnackbar(
|
||||||
|
|
Loading…
Reference in a new issue