Clear db now has a option to keep read manga
This commit is contained in:
parent
3601968342
commit
d0561705fe
@ -169,6 +169,26 @@ interface MangaQueries : DbProvider {
|
||||
)
|
||||
.prepare()
|
||||
|
||||
// SY -->
|
||||
fun deleteMangasNotInLibraryAndNotRead() = db.delete()
|
||||
.byQuery(
|
||||
DeleteQuery.builder()
|
||||
.table(MangaTable.TABLE)
|
||||
.where(
|
||||
"""
|
||||
${MangaTable.COL_FAVORITE} = ? AND ${MangaTable.COL_ID} NOT IN (
|
||||
SELECT ${MergedTable.COL_MANGA_ID} FROM ${MergedTable.TABLE} WHERE ${MergedTable.COL_MANGA_ID} != ${MergedTable.COL_MERGE_ID}
|
||||
) AND ${MangaTable.COL_ID} NOT IN (
|
||||
SELECT ${ChapterTable.COL_MANGA_ID} FROM ${ChapterTable.TABLE} WHERE ${ChapterTable.COL_READ} = 1 OR ${ChapterTable.COL_LAST_PAGE_READ} != 0
|
||||
)
|
||||
""".trimIndent()
|
||||
)
|
||||
.whereArgs(0)
|
||||
.build()
|
||||
)
|
||||
.prepare()
|
||||
// SY <--
|
||||
|
||||
fun deleteMangas() = db.delete()
|
||||
.byQuery(
|
||||
DeleteQuery.builder()
|
||||
|
@ -12,6 +12,7 @@ import androidx.core.net.toUri
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.preference.PreferenceScreen
|
||||
import com.afollestad.materialdialogs.MaterialDialog
|
||||
import com.afollestad.materialdialogs.checkbox.checkBoxPrompt
|
||||
import com.afollestad.materialdialogs.list.listItemsMultiChoice
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||
@ -413,11 +414,20 @@ class SettingsAdvancedController : SettingsController() {
|
||||
}
|
||||
|
||||
class ClearDatabaseDialogController : DialogController() {
|
||||
// SY -->
|
||||
var keepReadManga = false
|
||||
// SY <--
|
||||
|
||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||
return MaterialDialog(activity!!)
|
||||
.message(R.string.clear_database_confirmation)
|
||||
// SY -->
|
||||
.checkBoxPrompt(R.string.clear_db_exclude_read) {
|
||||
keepReadManga = it
|
||||
}
|
||||
// SY <--
|
||||
.positiveButton(android.R.string.ok) {
|
||||
(targetController as? SettingsAdvancedController)?.clearDatabase()
|
||||
(targetController as? SettingsAdvancedController)?.clearDatabase(/* SY --> */keepReadManga/* SY <-- */)
|
||||
}
|
||||
.negativeButton(android.R.string.cancel)
|
||||
}
|
||||
@ -439,8 +449,14 @@ class SettingsAdvancedController : SettingsController() {
|
||||
activity?.toast(R.string.clear_history_completed)
|
||||
}
|
||||
|
||||
private fun clearDatabase() {
|
||||
db.deleteMangasNotInLibrary().executeAsBlocking()
|
||||
private fun clearDatabase(keepReadManga: Boolean) {
|
||||
// SY -->
|
||||
if (keepReadManga) {
|
||||
db.deleteMangasNotInLibraryAndNotRead().executeAsBlocking()
|
||||
} else {
|
||||
db.deleteMangasNotInLibrary().executeAsBlocking()
|
||||
}
|
||||
// SY <--
|
||||
db.deleteHistoryNoLastRead().executeAsBlocking()
|
||||
activity?.toast(R.string.clear_database_completed)
|
||||
}
|
||||
@ -448,6 +464,8 @@ class SettingsAdvancedController : SettingsController() {
|
||||
private companion object {
|
||||
const val CLEAR_CACHE_KEY = "pref_clear_cache_key"
|
||||
|
||||
// SY -->
|
||||
private var job: Job? = null
|
||||
// SY <--
|
||||
}
|
||||
}
|
||||
|
@ -152,6 +152,7 @@
|
||||
<string name="data_saver_server">Bandwidth Hero Proxy Server</string>
|
||||
<string name="data_saver_server_summary">Put Bandwidth Hero Proxy server url here</string>
|
||||
<string name="update_monthly">Monthly</string>
|
||||
<string name="clear_db_exclude_read">Keep manga with read chapters</string>
|
||||
|
||||
<!-- Log Level -->
|
||||
<string name="log_minimal">Minimal</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user