mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
Add option to backup read manga not in library (#1383)
This commit is contained in:
parent
4192818ba0
commit
e897d5628f
7 changed files with 37 additions and 2 deletions
|
@ -58,6 +58,9 @@ abstract class AbstractBackupManager(protected val context: Context) {
|
|||
protected fun getFavoriteManga(): List<Manga> =
|
||||
db.getFavoriteMangas().executeAsBlocking()
|
||||
|
||||
protected fun getReadManga(): List<Manga> =
|
||||
db.getReadNotInLibraryMangas().executeAsBlocking()
|
||||
|
||||
/**
|
||||
* Inserts manga and returns id
|
||||
*
|
||||
|
|
|
@ -18,5 +18,7 @@ object BackupConst {
|
|||
internal const val BACKUP_TRACK_MASK = 0x8
|
||||
internal const val BACKUP_CUSTOM_INFO = 0x10
|
||||
internal const val BACKUP_CUSTOM_INFO_MASK = 0x10
|
||||
internal const val BACKUP_READ_MANGA = 0x20
|
||||
internal const val BACKUP_READ_MANGA_MASK = 0x20
|
||||
internal const val BACKUP_ALL = 0x1F
|
||||
}
|
||||
|
|
|
@ -12,6 +12,8 @@ import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_CUSTOM_INFO
|
|||
import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_CUSTOM_INFO_MASK
|
||||
import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_HISTORY
|
||||
import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_HISTORY_MASK
|
||||
import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_READ_MANGA
|
||||
import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_READ_MANGA_MASK
|
||||
import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_TRACK
|
||||
import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_TRACK_MASK
|
||||
import eu.kanade.tachiyomi.data.backup.models.Backup
|
||||
|
@ -51,7 +53,11 @@ class BackupManager(context: Context) : AbstractBackupManager(context) {
|
|||
var backup: Backup? = null
|
||||
|
||||
db.inTransaction {
|
||||
val databaseManga = getFavoriteManga()
|
||||
val databaseManga = getFavoriteManga() + if (flags and BACKUP_READ_MANGA_MASK == BACKUP_READ_MANGA) {
|
||||
getReadManga()
|
||||
} else {
|
||||
emptyList()
|
||||
}
|
||||
|
||||
backup = Backup(
|
||||
backupMangas(databaseManga, flags),
|
||||
|
|
|
@ -191,6 +191,15 @@ interface MangaQueries : DbProvider {
|
|||
)
|
||||
.prepare()
|
||||
|
||||
fun getReadNotInLibraryMangas() = db.get()
|
||||
.listOfObjects(Manga::class.java)
|
||||
.withQuery(
|
||||
RawQuery.builder()
|
||||
.query(getReadMangaNotInLibraryQuery())
|
||||
.build(),
|
||||
)
|
||||
.prepare()
|
||||
|
||||
fun getLastReadManga() = db.get()
|
||||
.listOfObjects(Manga::class.java)
|
||||
.withQuery(
|
||||
|
|
|
@ -319,3 +319,15 @@ fun getSourceIdsWithNonLibraryMangaQuery() =
|
|||
WHERE ${Manga.COL_FAVORITE} = 0
|
||||
GROUP BY ${Manga.COL_SOURCE}
|
||||
"""
|
||||
|
||||
/**
|
||||
* Query to get manga that are not in library, but have read chapters
|
||||
*/
|
||||
fun getReadMangaNotInLibraryQuery() =
|
||||
"""
|
||||
SELECT ${Manga.TABLE}.*
|
||||
FROM ${Manga.TABLE}
|
||||
WHERE ${Manga.COL_FAVORITE} = 0 AND ${Manga.COL_ID} IN(
|
||||
SELECT ${Chapter.TABLE}.${Chapter.COL_MANGA_ID} FROM ${Chapter.TABLE} WHERE ${Chapter.COL_READ} = 1 OR ${Chapter.COL_LAST_PAGE_READ} != 0
|
||||
)
|
||||
"""
|
|
@ -218,6 +218,7 @@ class SettingsBackupController : SettingsController() {
|
|||
R.string.tracking,
|
||||
R.string.history,
|
||||
R.string.custom_manga_info,
|
||||
R.string.all_read_manga,
|
||||
)
|
||||
.map { activity.getString(it) }
|
||||
|
||||
|
@ -225,7 +226,7 @@ class SettingsBackupController : SettingsController() {
|
|||
.setTitle(R.string.what_should_backup)
|
||||
.setMultiChoiceItems(
|
||||
options.toTypedArray(),
|
||||
booleanArrayOf(true, true, true, true, true, true),
|
||||
options.map { true }.toBooleanArray(),
|
||||
) { dialog, position, _ ->
|
||||
if (position == 0) {
|
||||
val listView = (dialog as AlertDialog).listView
|
||||
|
@ -243,6 +244,7 @@ class SettingsBackupController : SettingsController() {
|
|||
3 -> flags = flags or BackupConst.BACKUP_TRACK
|
||||
4 -> flags = flags or BackupConst.BACKUP_HISTORY
|
||||
5 -> flags = flags or BackupConst.BACKUP_CUSTOM_INFO
|
||||
6 -> flags = flags or BackupConst.BACKUP_READ_MANGA
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -564,6 +564,7 @@
|
|||
<string name="error_saving_cover">Error saving cover</string>
|
||||
<string name="error_sharing_cover">Error sharing cover</string>
|
||||
<string name="custom_manga_info">Custom manga info</string>
|
||||
<string name="all_read_manga">All read manga</string>
|
||||
<string name="set_as_default">Set as default</string>
|
||||
<string name="filter_groups">Filter scanlator groups</string>
|
||||
<plurals name="deleted_chapters">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue