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()
|
.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()
|
fun deleteMangas() = db.delete()
|
||||||
.byQuery(
|
.byQuery(
|
||||||
DeleteQuery.builder()
|
DeleteQuery.builder()
|
||||||
|
@ -12,6 +12,7 @@ import androidx.core.net.toUri
|
|||||||
import androidx.core.text.HtmlCompat
|
import androidx.core.text.HtmlCompat
|
||||||
import androidx.preference.PreferenceScreen
|
import androidx.preference.PreferenceScreen
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
|
import com.afollestad.materialdialogs.checkbox.checkBoxPrompt
|
||||||
import com.afollestad.materialdialogs.list.listItemsMultiChoice
|
import com.afollestad.materialdialogs.list.listItemsMultiChoice
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||||
@ -413,11 +414,20 @@ class SettingsAdvancedController : SettingsController() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ClearDatabaseDialogController : DialogController() {
|
class ClearDatabaseDialogController : DialogController() {
|
||||||
|
// SY -->
|
||||||
|
var keepReadManga = false
|
||||||
|
// SY <--
|
||||||
|
|
||||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||||
return MaterialDialog(activity!!)
|
return MaterialDialog(activity!!)
|
||||||
.message(R.string.clear_database_confirmation)
|
.message(R.string.clear_database_confirmation)
|
||||||
|
// SY -->
|
||||||
|
.checkBoxPrompt(R.string.clear_db_exclude_read) {
|
||||||
|
keepReadManga = it
|
||||||
|
}
|
||||||
|
// SY <--
|
||||||
.positiveButton(android.R.string.ok) {
|
.positiveButton(android.R.string.ok) {
|
||||||
(targetController as? SettingsAdvancedController)?.clearDatabase()
|
(targetController as? SettingsAdvancedController)?.clearDatabase(/* SY --> */keepReadManga/* SY <-- */)
|
||||||
}
|
}
|
||||||
.negativeButton(android.R.string.cancel)
|
.negativeButton(android.R.string.cancel)
|
||||||
}
|
}
|
||||||
@ -439,8 +449,14 @@ class SettingsAdvancedController : SettingsController() {
|
|||||||
activity?.toast(R.string.clear_history_completed)
|
activity?.toast(R.string.clear_history_completed)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun clearDatabase() {
|
private fun clearDatabase(keepReadManga: Boolean) {
|
||||||
|
// SY -->
|
||||||
|
if (keepReadManga) {
|
||||||
|
db.deleteMangasNotInLibraryAndNotRead().executeAsBlocking()
|
||||||
|
} else {
|
||||||
db.deleteMangasNotInLibrary().executeAsBlocking()
|
db.deleteMangasNotInLibrary().executeAsBlocking()
|
||||||
|
}
|
||||||
|
// SY <--
|
||||||
db.deleteHistoryNoLastRead().executeAsBlocking()
|
db.deleteHistoryNoLastRead().executeAsBlocking()
|
||||||
activity?.toast(R.string.clear_database_completed)
|
activity?.toast(R.string.clear_database_completed)
|
||||||
}
|
}
|
||||||
@ -448,6 +464,8 @@ class SettingsAdvancedController : SettingsController() {
|
|||||||
private companion object {
|
private companion object {
|
||||||
const val CLEAR_CACHE_KEY = "pref_clear_cache_key"
|
const val CLEAR_CACHE_KEY = "pref_clear_cache_key"
|
||||||
|
|
||||||
|
// SY -->
|
||||||
private var job: Job? = null
|
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">Bandwidth Hero Proxy Server</string>
|
||||||
<string name="data_saver_server_summary">Put Bandwidth Hero Proxy server url here</string>
|
<string name="data_saver_server_summary">Put Bandwidth Hero Proxy server url here</string>
|
||||||
<string name="update_monthly">Monthly</string>
|
<string name="update_monthly">Monthly</string>
|
||||||
|
<string name="clear_db_exclude_read">Keep manga with read chapters</string>
|
||||||
|
|
||||||
<!-- Log Level -->
|
<!-- Log Level -->
|
||||||
<string name="log_minimal">Minimal</string>
|
<string name="log_minimal">Minimal</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user