Remove drag and drop
This commit is contained in:
parent
b4adab5eb4
commit
dd68ef4ba8
@ -2,14 +2,11 @@ package eu.kanade.data.category
|
|||||||
|
|
||||||
import eu.kanade.domain.category.model.Category
|
import eu.kanade.domain.category.model.Category
|
||||||
|
|
||||||
val categoryMapper: (Long, String, Long, Long, List<Long>) -> Category = { id, name, order, flags, mangaOrder ->
|
val categoryMapper: (Long, String, Long, Long) -> Category = { id, name, order, flags ->
|
||||||
Category(
|
Category(
|
||||||
id = id,
|
id = id,
|
||||||
name = name,
|
name = name,
|
||||||
order = order,
|
order = order,
|
||||||
flags = flags,
|
flags = flags,
|
||||||
// SY -->
|
|
||||||
mangaOrder = mangaOrder,
|
|
||||||
// SY <--
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package eu.kanade.data.category
|
package eu.kanade.data.category
|
||||||
|
|
||||||
import eu.kanade.data.DatabaseHandler
|
import eu.kanade.data.DatabaseHandler
|
||||||
import eu.kanade.data.listOfLongsAdapter
|
|
||||||
import eu.kanade.domain.category.model.Category
|
import eu.kanade.domain.category.model.Category
|
||||||
import eu.kanade.domain.category.model.CategoryUpdate
|
import eu.kanade.domain.category.model.CategoryUpdate
|
||||||
import eu.kanade.domain.category.repository.CategoryRepository
|
import eu.kanade.domain.category.repository.CategoryRepository
|
||||||
@ -39,9 +38,6 @@ class CategoryRepositoryImpl(
|
|||||||
name = category.name,
|
name = category.name,
|
||||||
order = category.order,
|
order = category.order,
|
||||||
flags = category.flags,
|
flags = category.flags,
|
||||||
// SY -->
|
|
||||||
mangaOrder = category.mangaOrder,
|
|
||||||
// SY <--
|
|
||||||
)
|
)
|
||||||
categoriesQueries.selectLastInsertedRowId()
|
categoriesQueries.selectLastInsertedRowId()
|
||||||
}
|
}
|
||||||
@ -68,9 +64,6 @@ class CategoryRepositoryImpl(
|
|||||||
order = update.order,
|
order = update.order,
|
||||||
flags = update.flags,
|
flags = update.flags,
|
||||||
categoryId = update.id,
|
categoryId = update.id,
|
||||||
// SY -->
|
|
||||||
mangaOrder = update.mangaOrder?.let(listOfLongsAdapter::encode),
|
|
||||||
// SY <--
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,6 @@ class CreateCategoryWithName(
|
|||||||
name = name,
|
name = name,
|
||||||
order = nextOrder,
|
order = nextOrder,
|
||||||
flags = 0,
|
flags = 0,
|
||||||
mangaOrder = emptyList(),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -14,9 +14,6 @@ data class Category(
|
|||||||
val name: String,
|
val name: String,
|
||||||
val order: Long,
|
val order: Long,
|
||||||
val flags: Long,
|
val flags: Long,
|
||||||
// SY -->
|
|
||||||
val mangaOrder: List<Long>,
|
|
||||||
// SY <--
|
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
|
|
||||||
val displayMode: Long
|
val displayMode: Long
|
||||||
@ -35,7 +32,6 @@ data class Category(
|
|||||||
name = context.getString(R.string.label_default),
|
name = context.getString(R.string.label_default),
|
||||||
order = 0,
|
order = 0,
|
||||||
flags = 0,
|
flags = 0,
|
||||||
mangaOrder = emptyList(),
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,4 @@ data class CategoryUpdate(
|
|||||||
val name: String? = null,
|
val name: String? = null,
|
||||||
val order: Long? = null,
|
val order: Long? = null,
|
||||||
val flags: Long? = null,
|
val flags: Long? = null,
|
||||||
// SY -->
|
|
||||||
val mangaOrder: List<Long>? = null,
|
|
||||||
// SY <--
|
|
||||||
)
|
)
|
||||||
|
@ -293,7 +293,7 @@ class FullBackupManager(context: Context) : AbstractBackupManager(context) {
|
|||||||
// Let the db assign the id
|
// Let the db assign the id
|
||||||
category.id = null
|
category.id = null
|
||||||
category.id = handler.awaitOne {
|
category.id = handler.awaitOne {
|
||||||
categoriesQueries.insert(category.name, category.order.toLong(), category.flags.toLong(), category.mangaOrder)
|
categoriesQueries.insert(category.name, category.order.toLong(), category.flags.toLong())
|
||||||
categoriesQueries.selectLastInsertedRowId()
|
categoriesQueries.selectLastInsertedRowId()
|
||||||
}.toInt()
|
}.toInt()
|
||||||
}
|
}
|
||||||
|
@ -12,23 +12,22 @@ class BackupCategory(
|
|||||||
// Bump by 100 to specify this is a 0.x value
|
// Bump by 100 to specify this is a 0.x value
|
||||||
@ProtoNumber(100) var flags: Long = 0,
|
@ProtoNumber(100) var flags: Long = 0,
|
||||||
// SY specific values
|
// SY specific values
|
||||||
@ProtoNumber(600) var mangaOrder: List<Long> = emptyList(),
|
/*@ProtoNumber(600) var mangaOrder: List<Long> = emptyList(),*/
|
||||||
) {
|
) {
|
||||||
fun getCategoryImpl(): CategoryImpl {
|
fun getCategoryImpl(): CategoryImpl {
|
||||||
return CategoryImpl().apply {
|
return CategoryImpl().apply {
|
||||||
name = this@BackupCategory.name
|
name = this@BackupCategory.name
|
||||||
flags = this@BackupCategory.flags.toInt()
|
flags = this@BackupCategory.flags.toInt()
|
||||||
order = this@BackupCategory.order.toInt()
|
order = this@BackupCategory.order.toInt()
|
||||||
mangaOrder = this@BackupCategory.mangaOrder
|
/*mangaOrder = this@BackupCategory.mangaOrder*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val backupCategoryMapper = { _: Long, name: String, order: Long, flags: Long, mangaOrder: List<Long> ->
|
val backupCategoryMapper = { _: Long, name: String, order: Long, flags: Long ->
|
||||||
BackupCategory(
|
BackupCategory(
|
||||||
name = name,
|
name = name,
|
||||||
order = order,
|
order = order,
|
||||||
flags = flags,
|
flags = flags,
|
||||||
mangaOrder = mangaOrder,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -16,10 +16,6 @@ interface Category : Serializable {
|
|||||||
|
|
||||||
var flags: Int
|
var flags: Int
|
||||||
|
|
||||||
// SY -->
|
|
||||||
var mangaOrder: List<Long>
|
|
||||||
// SY <--
|
|
||||||
|
|
||||||
private fun setFlags(flag: Int, mask: Int) {
|
private fun setFlags(flag: Int, mask: Int) {
|
||||||
flags = flags and mask.inv() or (flag and mask)
|
flags = flags and mask.inv() or (flag and mask)
|
||||||
}
|
}
|
||||||
@ -44,6 +40,5 @@ fun Category.toDomainCategory(): DomainCategory? {
|
|||||||
name = this.name,
|
name = this.name,
|
||||||
order = this.order.toLong(),
|
order = this.order.toLong(),
|
||||||
flags = this.flags.toLong(),
|
flags = this.flags.toLong(),
|
||||||
mangaOrder = mangaOrder,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -10,10 +10,6 @@ class CategoryImpl : Category {
|
|||||||
|
|
||||||
override var flags: Int = 0
|
override var flags: Int = 0
|
||||||
|
|
||||||
// SY -->
|
|
||||||
override var mangaOrder: List<Long> = emptyList()
|
|
||||||
// SY <--
|
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
if (this === other) return true
|
if (this === other) return true
|
||||||
if (other == null || javaClass != other.javaClass) return false
|
if (other == null || javaClass != other.javaClass) return false
|
||||||
|
@ -527,9 +527,6 @@ class LibraryPresenter(
|
|||||||
i1.manga.date_added.compareTo(i2.manga.date_added)
|
i1.manga.date_added.compareTo(i2.manga.date_added)
|
||||||
}
|
}
|
||||||
// SY -->
|
// SY -->
|
||||||
SortModeSetting.DRAG_AND_DROP -> {
|
|
||||||
0
|
|
||||||
}
|
|
||||||
SortModeSetting.TAG_LIST -> {
|
SortModeSetting.TAG_LIST -> {
|
||||||
val manga1IndexOfTag = listOfTags.indexOfFirst { i1.manga.getGenres()?.contains(it) ?: false }
|
val manga1IndexOfTag = listOfTags.indexOfFirst { i1.manga.getGenres()?.contains(it) ?: false }
|
||||||
val manga2IndexOfTag = listOfTags.indexOfFirst { i2.manga.getGenres()?.contains(it) ?: false }
|
val manga2IndexOfTag = listOfTags.indexOfFirst { i2.manga.getGenres()?.contains(it) ?: false }
|
||||||
@ -589,7 +586,7 @@ class LibraryPresenter(
|
|||||||
val items = if (groupType == LibraryGroup.BY_DEFAULT) {
|
val items = if (groupType == LibraryGroup.BY_DEFAULT) {
|
||||||
map
|
map
|
||||||
} else if (!libraryIsGrouped) {
|
} else if (!libraryIsGrouped) {
|
||||||
editedCategories = listOf(Category(0, "All", 0, 0, emptyList()))
|
editedCategories = listOf(Category(0, "All", 0, 0))
|
||||||
mapOf(
|
mapOf(
|
||||||
0L to map.values.flatten().distinctBy { it.manga.id },
|
0L to map.values.flatten().distinctBy { it.manga.id },
|
||||||
)
|
)
|
||||||
@ -1138,7 +1135,7 @@ class LibraryPresenter(
|
|||||||
LibraryGroup.BY_TRACK_STATUS, LibraryGroup.BY_STATUS -> grouping.values.filter { it.first in map.keys }
|
LibraryGroup.BY_TRACK_STATUS, LibraryGroup.BY_STATUS -> grouping.values.filter { it.first in map.keys }
|
||||||
else -> grouping.values
|
else -> grouping.values
|
||||||
}.map { (id, name) ->
|
}.map { (id, name) ->
|
||||||
Category(id, name, 0, 0, emptyList())
|
Category(id, name, 0, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
return map to categories
|
return map to categories
|
||||||
|
@ -216,14 +216,13 @@ class LibrarySettingsSheet(
|
|||||||
private val dateAdded = Item.MultiSort(R.string.action_sort_date_added, this)
|
private val dateAdded = Item.MultiSort(R.string.action_sort_date_added, this)
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
private val dragAndDrop = Item.MultiSort(R.string.action_sort_drag_and_drop, this)
|
|
||||||
private val tagList = Item.MultiSort(R.string.tag_sorting, this)
|
private val tagList = Item.MultiSort(R.string.tag_sorting, this)
|
||||||
// SY <--
|
// SY <--
|
||||||
|
|
||||||
override val header = null
|
override val header = null
|
||||||
|
|
||||||
override val items =
|
override val items =
|
||||||
listOf(alphabetically, lastRead, lastChecked, unread, total, latestChapter, chapterFetchDate, dateAdded /* SY --> */, dragAndDrop) + if (preferences.sortTagsForLibrary().get().isNotEmpty()) listOf(tagList) else emptyList() // SY <--
|
listOf(alphabetically, lastRead, lastChecked, unread, total, latestChapter, chapterFetchDate, dateAdded /* SY --> */) + if (preferences.sortTagsForLibrary().get().isNotEmpty()) listOf(tagList) else emptyList() // SY <--
|
||||||
override val footer = null
|
override val footer = null
|
||||||
|
|
||||||
override fun initModels() {
|
override fun initModels() {
|
||||||
@ -251,8 +250,6 @@ class LibrarySettingsSheet(
|
|||||||
dateAdded.state =
|
dateAdded.state =
|
||||||
if (sorting == SortModeSetting.DATE_ADDED) order else Item.MultiSort.SORT_NONE
|
if (sorting == SortModeSetting.DATE_ADDED) order else Item.MultiSort.SORT_NONE
|
||||||
// SY -->
|
// SY -->
|
||||||
dragAndDrop.state =
|
|
||||||
if (sorting == SortModeSetting.DRAG_AND_DROP) order else Item.MultiSort.SORT_NONE
|
|
||||||
tagList.state =
|
tagList.state =
|
||||||
if (sorting == SortModeSetting.TAG_LIST) order else Item.MultiSort.SORT_NONE
|
if (sorting == SortModeSetting.TAG_LIST) order else Item.MultiSort.SORT_NONE
|
||||||
// SY <--
|
// SY <--
|
||||||
@ -260,27 +257,19 @@ class LibrarySettingsSheet(
|
|||||||
|
|
||||||
override fun onItemClicked(item: Item) {
|
override fun onItemClicked(item: Item) {
|
||||||
item as Item.MultiStateGroup
|
item as Item.MultiStateGroup
|
||||||
// SY -->
|
|
||||||
if (item == dragAndDrop && preferences.groupLibraryBy().get() != LibraryGroup.BY_DEFAULT) return
|
|
||||||
// SY <--
|
|
||||||
val prevState = item.state
|
val prevState = item.state
|
||||||
|
|
||||||
item.group.items.forEach {
|
item.group.items.forEach {
|
||||||
(it as Item.MultiStateGroup).state =
|
(it as Item.MultiStateGroup).state =
|
||||||
Item.MultiSort.SORT_NONE
|
Item.MultiSort.SORT_NONE
|
||||||
}
|
}
|
||||||
// SY -->
|
|
||||||
if (item == dragAndDrop) {
|
item.state = when (prevState) {
|
||||||
item.state = Item.MultiSort.SORT_ASC
|
Item.MultiSort.SORT_NONE -> Item.MultiSort.SORT_ASC
|
||||||
} else {
|
Item.MultiSort.SORT_ASC -> Item.MultiSort.SORT_DESC
|
||||||
item.state = when (prevState) {
|
Item.MultiSort.SORT_DESC -> Item.MultiSort.SORT_ASC
|
||||||
Item.MultiSort.SORT_NONE -> Item.MultiSort.SORT_ASC
|
else -> throw Exception("Unknown state")
|
||||||
Item.MultiSort.SORT_ASC -> Item.MultiSort.SORT_DESC
|
|
||||||
Item.MultiSort.SORT_DESC -> Item.MultiSort.SORT_ASC
|
|
||||||
else -> throw Exception("Unknown state")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// SY <--
|
|
||||||
|
|
||||||
item.state = when (prevState) {
|
item.state = when (prevState) {
|
||||||
Item.MultiSort.SORT_NONE -> Item.MultiSort.SORT_ASC
|
Item.MultiSort.SORT_NONE -> Item.MultiSort.SORT_ASC
|
||||||
@ -329,7 +318,6 @@ class LibrarySettingsSheet(
|
|||||||
chapterFetchDate -> SortModeSetting.CHAPTER_FETCH_DATE
|
chapterFetchDate -> SortModeSetting.CHAPTER_FETCH_DATE
|
||||||
dateAdded -> SortModeSetting.DATE_ADDED
|
dateAdded -> SortModeSetting.DATE_ADDED
|
||||||
// SY -->
|
// SY -->
|
||||||
dragAndDrop -> SortModeSetting.DRAG_AND_DROP
|
|
||||||
tagList -> SortModeSetting.TAG_LIST
|
tagList -> SortModeSetting.TAG_LIST
|
||||||
// SY <--
|
// SY <--
|
||||||
else -> throw NotImplementedError("Unknown display mode")
|
else -> throw NotImplementedError("Unknown display mode")
|
||||||
@ -590,12 +578,6 @@ class LibrarySettingsSheet(
|
|||||||
|
|
||||||
override fun onItemClicked(item: Item) {
|
override fun onItemClicked(item: Item) {
|
||||||
item as Item.DrawableSelection
|
item as Item.DrawableSelection
|
||||||
if (item.id != LibraryGroup.BY_DEFAULT && preferences.librarySortingMode().get() == SortModeSetting.DRAG_AND_DROP) {
|
|
||||||
preferences.librarySortingMode().set(SortModeSetting.ALPHABETICAL)
|
|
||||||
preferences.librarySortingAscending().set(SortDirectionSetting.ASCENDING)
|
|
||||||
sort.adjustDisplaySelection()
|
|
||||||
}
|
|
||||||
|
|
||||||
item.group.items.forEach {
|
item.group.items.forEach {
|
||||||
(it as Item.DrawableSelection).state =
|
(it as Item.DrawableSelection).state =
|
||||||
Item.DrawableSelection.NOT_SELECTED
|
Item.DrawableSelection.NOT_SELECTED
|
||||||
|
@ -12,8 +12,12 @@ enum class SortModeSetting(val flag: Long) {
|
|||||||
LATEST_CHAPTER(0b00010100),
|
LATEST_CHAPTER(0b00010100),
|
||||||
CHAPTER_FETCH_DATE(0b00011000),
|
CHAPTER_FETCH_DATE(0b00011000),
|
||||||
DATE_ADDED(0b00011100),
|
DATE_ADDED(0b00011100),
|
||||||
|
|
||||||
|
// SY -->
|
||||||
|
@Deprecated("Was unused")
|
||||||
DRAG_AND_DROP(0b00100000),
|
DRAG_AND_DROP(0b00100000),
|
||||||
TAG_LIST(0b00100100),
|
TAG_LIST(0b00100100),
|
||||||
|
// SY <--
|
||||||
|
|
||||||
@Deprecated("Use LAST_MANGA_UPDATE")
|
@Deprecated("Use LAST_MANGA_UPDATE")
|
||||||
LAST_CHECKED(0b00001000),
|
LAST_CHECKED(0b00001000),
|
||||||
|
@ -5,6 +5,7 @@ package exh
|
|||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import eu.kanade.data.DatabaseHandler
|
import eu.kanade.data.DatabaseHandler
|
||||||
|
import eu.kanade.data.category.categoryMapper
|
||||||
import eu.kanade.data.chapter.chapterMapper
|
import eu.kanade.data.chapter.chapterMapper
|
||||||
import eu.kanade.domain.chapter.interactor.DeleteChapters
|
import eu.kanade.domain.chapter.interactor.DeleteChapters
|
||||||
import eu.kanade.domain.chapter.interactor.UpdateChapter
|
import eu.kanade.domain.chapter.interactor.UpdateChapter
|
||||||
@ -39,6 +40,7 @@ import eu.kanade.tachiyomi.ui.library.setting.SortModeSetting
|
|||||||
import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
|
import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
|
||||||
import eu.kanade.tachiyomi.util.preference.minusAssign
|
import eu.kanade.tachiyomi.util.preference.minusAssign
|
||||||
import eu.kanade.tachiyomi.util.system.DeviceUtil
|
import eu.kanade.tachiyomi.util.system.DeviceUtil
|
||||||
|
import eu.kanade.tachiyomi.util.system.logcat
|
||||||
import exh.eh.EHentaiUpdateWorker
|
import exh.eh.EHentaiUpdateWorker
|
||||||
import exh.log.xLogE
|
import exh.log.xLogE
|
||||||
import exh.merged.sql.models.MergedMangaReference
|
import exh.merged.sql.models.MergedMangaReference
|
||||||
@ -268,36 +270,40 @@ object EXHMigrations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (oldVersion under 20) {
|
if (oldVersion under 20) {
|
||||||
val oldSortingMode = prefs.getInt(PreferenceKeys.librarySortingMode, 0)
|
try {
|
||||||
val oldSortingDirection = prefs.getBoolean(PreferenceKeys.librarySortingDirection, true)
|
val oldSortingMode = prefs.getInt(PreferenceKeys.librarySortingMode, 0)
|
||||||
|
val oldSortingDirection = prefs.getBoolean(PreferenceKeys.librarySortingDirection, true)
|
||||||
|
|
||||||
val newSortingMode = when (oldSortingMode) {
|
val newSortingMode = when (oldSortingMode) {
|
||||||
LibrarySort.ALPHA -> SortModeSetting.ALPHABETICAL
|
LibrarySort.ALPHA -> SortModeSetting.ALPHABETICAL
|
||||||
LibrarySort.LAST_READ -> SortModeSetting.LAST_READ
|
LibrarySort.LAST_READ -> SortModeSetting.LAST_READ
|
||||||
LibrarySort.LAST_CHECKED -> SortModeSetting.LAST_MANGA_UPDATE
|
LibrarySort.LAST_CHECKED -> SortModeSetting.LAST_MANGA_UPDATE
|
||||||
LibrarySort.UNREAD -> SortModeSetting.UNREAD_COUNT
|
LibrarySort.UNREAD -> SortModeSetting.UNREAD_COUNT
|
||||||
LibrarySort.TOTAL -> SortModeSetting.TOTAL_CHAPTERS
|
LibrarySort.TOTAL -> SortModeSetting.TOTAL_CHAPTERS
|
||||||
LibrarySort.LATEST_CHAPTER -> SortModeSetting.LATEST_CHAPTER
|
LibrarySort.LATEST_CHAPTER -> SortModeSetting.LATEST_CHAPTER
|
||||||
LibrarySort.CHAPTER_FETCH_DATE -> SortModeSetting.CHAPTER_FETCH_DATE
|
LibrarySort.CHAPTER_FETCH_DATE -> SortModeSetting.CHAPTER_FETCH_DATE
|
||||||
LibrarySort.DATE_ADDED -> SortModeSetting.DATE_ADDED
|
LibrarySort.DATE_ADDED -> SortModeSetting.DATE_ADDED
|
||||||
LibrarySort.DRAG_AND_DROP -> SortModeSetting.DRAG_AND_DROP
|
LibrarySort.DRAG_AND_DROP -> SortModeSetting.DRAG_AND_DROP
|
||||||
LibrarySort.TAG_LIST -> SortModeSetting.TAG_LIST
|
LibrarySort.TAG_LIST -> SortModeSetting.TAG_LIST
|
||||||
else -> SortModeSetting.ALPHABETICAL
|
else -> SortModeSetting.ALPHABETICAL
|
||||||
}
|
}
|
||||||
|
|
||||||
val newSortingDirection = when (oldSortingDirection) {
|
val newSortingDirection = when (oldSortingDirection) {
|
||||||
true -> SortDirectionSetting.ASCENDING
|
true -> SortDirectionSetting.ASCENDING
|
||||||
else -> SortDirectionSetting.DESCENDING
|
else -> SortDirectionSetting.DESCENDING
|
||||||
}
|
}
|
||||||
|
|
||||||
prefs.edit(commit = true) {
|
prefs.edit(commit = true) {
|
||||||
remove(PreferenceKeys.librarySortingMode)
|
remove(PreferenceKeys.librarySortingMode)
|
||||||
remove(PreferenceKeys.librarySortingDirection)
|
remove(PreferenceKeys.librarySortingDirection)
|
||||||
}
|
}
|
||||||
|
|
||||||
prefs.edit {
|
prefs.edit {
|
||||||
putString(PreferenceKeys.librarySortingMode, newSortingMode.name)
|
putString(PreferenceKeys.librarySortingMode, newSortingMode.name)
|
||||||
putString(PreferenceKeys.librarySortingDirection, newSortingDirection.name)
|
putString(PreferenceKeys.librarySortingDirection, newSortingDirection.name)
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
logcat(throwable = e) { "Already done migration" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (oldVersion under 21) {
|
if (oldVersion under 21) {
|
||||||
@ -413,9 +419,24 @@ object EXHMigrations {
|
|||||||
SortModeSetting.LAST_CHECKED -> SortModeSetting.LAST_MANGA_UPDATE
|
SortModeSetting.LAST_CHECKED -> SortModeSetting.LAST_MANGA_UPDATE
|
||||||
SortModeSetting.UNREAD -> SortModeSetting.UNREAD_COUNT
|
SortModeSetting.UNREAD -> SortModeSetting.UNREAD_COUNT
|
||||||
SortModeSetting.DATE_FETCHED -> SortModeSetting.CHAPTER_FETCH_DATE
|
SortModeSetting.DATE_FETCHED -> SortModeSetting.CHAPTER_FETCH_DATE
|
||||||
|
SortModeSetting.DRAG_AND_DROP -> SortModeSetting.ALPHABETICAL
|
||||||
else -> oldSortingMode
|
else -> oldSortingMode
|
||||||
}
|
}
|
||||||
preferences.librarySortingMode().set(newSortingMode)
|
preferences.librarySortingMode().set(newSortingMode)
|
||||||
|
runBlocking {
|
||||||
|
handler.await(true) {
|
||||||
|
categoriesQueries.getCategories(categoryMapper).executeAsList()
|
||||||
|
.filter { SortModeSetting.fromFlag(it.flags) == SortModeSetting.DRAG_AND_DROP }
|
||||||
|
.forEach {
|
||||||
|
categoriesQueries.update(
|
||||||
|
categoryId = it.id,
|
||||||
|
flags = it.flags xor SortModeSetting.DRAG_AND_DROP.flag,
|
||||||
|
name = null,
|
||||||
|
order = null,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (oldVersion under 1) { } (1 is current release version)
|
// if (oldVersion under 1) { } (1 is current release version)
|
||||||
|
@ -13,8 +13,7 @@ SELECT
|
|||||||
_id AS id,
|
_id AS id,
|
||||||
name,
|
name,
|
||||||
sort AS `order`,
|
sort AS `order`,
|
||||||
flags,
|
flags
|
||||||
manga_order AS `mangaOrder`
|
|
||||||
FROM categories
|
FROM categories
|
||||||
ORDER BY sort;
|
ORDER BY sort;
|
||||||
|
|
||||||
@ -23,8 +22,7 @@ SELECT
|
|||||||
C._id AS id,
|
C._id AS id,
|
||||||
C.name,
|
C.name,
|
||||||
C.sort AS `order`,
|
C.sort AS `order`,
|
||||||
C.flags,
|
C.flags
|
||||||
C.manga_order AS `mangaOrder`
|
|
||||||
FROM categories C
|
FROM categories C
|
||||||
JOIN mangas_categories MC
|
JOIN mangas_categories MC
|
||||||
ON C._id = MC.category_id
|
ON C._id = MC.category_id
|
||||||
@ -32,7 +30,7 @@ WHERE MC.manga_id = :mangaId;
|
|||||||
|
|
||||||
insert:
|
insert:
|
||||||
INSERT INTO categories(name, sort, flags, manga_order)
|
INSERT INTO categories(name, sort, flags, manga_order)
|
||||||
VALUES (:name, :order, :flags, :mangaOrder);
|
VALUES (:name, :order, :flags, NULL);
|
||||||
|
|
||||||
delete:
|
delete:
|
||||||
DELETE FROM categories
|
DELETE FROM categories
|
||||||
@ -42,8 +40,7 @@ update:
|
|||||||
UPDATE categories
|
UPDATE categories
|
||||||
SET name = coalesce(:name, name),
|
SET name = coalesce(:name, name),
|
||||||
sort = coalesce(:order, sort),
|
sort = coalesce(:order, sort),
|
||||||
flags = coalesce(:flags, flags),
|
flags = coalesce(:flags, flags)
|
||||||
manga_order = coalesce(:mangaOrder, manga_order)
|
|
||||||
WHERE _id = :categoryId;
|
WHERE _id = :categoryId;
|
||||||
|
|
||||||
selectLastInsertedRowId:
|
selectLastInsertedRowId:
|
||||||
|
@ -13,3 +13,5 @@ WHERE cover_last_modified = -1;
|
|||||||
UPDATE mangas
|
UPDATE mangas
|
||||||
SET last_update = 0
|
SET last_update = 0
|
||||||
WHERE last_update = -1;
|
WHERE last_update = -1;
|
||||||
|
UPDATE categories
|
||||||
|
SET manga_order = NULL;
|
Loading…
x
Reference in New Issue
Block a user