mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
parent
953a86b280
commit
31a55f1926
1 changed files with 15 additions and 1 deletions
|
@ -49,6 +49,8 @@ import com.tfcporciuncula.flow.Preference
|
||||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
import eu.davidea.flexibleadapter.SelectableAdapter
|
import eu.davidea.flexibleadapter.SelectableAdapter
|
||||||
import eu.davidea.flexibleadapter.items.IFlexible
|
import eu.davidea.flexibleadapter.items.IFlexible
|
||||||
|
import eu.davidea.flexibleadapter.items.IHeader
|
||||||
|
import eu.davidea.flexibleadapter.items.ISectionable
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.database.models.Category
|
import eu.kanade.tachiyomi.data.database.models.Category
|
||||||
import eu.kanade.tachiyomi.data.database.models.LibraryManga
|
import eu.kanade.tachiyomi.data.database.models.LibraryManga
|
||||||
|
@ -110,6 +112,7 @@ import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
|
import java.util.ArrayList
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
|
@ -1431,7 +1434,7 @@ class LibraryController(
|
||||||
if (lastItemPosition == null) return
|
if (lastItemPosition == null) return
|
||||||
val item = adapter.getItem(position) as? LibraryItem ?: return
|
val item = adapter.getItem(position) as? LibraryItem ?: return
|
||||||
val newHeader = adapter.getSectionHeader(position) as? LibraryHeaderItem
|
val newHeader = adapter.getSectionHeader(position) as? LibraryHeaderItem
|
||||||
val libraryItems = adapter.getSectionItems(adapter.getSectionHeader(position))
|
val libraryItems = getSectionItems(adapter.getSectionHeader(position), item)
|
||||||
.filterIsInstance<LibraryItem>()
|
.filterIsInstance<LibraryItem>()
|
||||||
val mangaIds = libraryItems.mapNotNull { (it as? LibraryItem)?.manga?.id }
|
val mangaIds = libraryItems.mapNotNull { (it as? LibraryItem)?.manga?.id }
|
||||||
if (newHeader?.category?.id == item.manga.category) {
|
if (newHeader?.category?.id == item.manga.category) {
|
||||||
|
@ -1454,6 +1457,17 @@ class LibraryController(
|
||||||
lastItemPosition = null
|
lastItemPosition = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getSectionItems(header: IHeader<*>, skipItem: ISectionable<*, *>): List<ISectionable<*, *>> {
|
||||||
|
val sectionItems: MutableList<ISectionable<*, *>> = ArrayList()
|
||||||
|
var startPosition: Int = adapter.getGlobalPositionOf(header)
|
||||||
|
var item = adapter.getItem(++startPosition) as? LibraryItem
|
||||||
|
while (item?.header == header || item == skipItem) {
|
||||||
|
sectionItems.add(item as ISectionable<*, *>)
|
||||||
|
item = adapter.getItem(++startPosition) as? LibraryItem
|
||||||
|
}
|
||||||
|
return sectionItems
|
||||||
|
}
|
||||||
|
|
||||||
private fun moveMangaToCategory(
|
private fun moveMangaToCategory(
|
||||||
manga: LibraryManga,
|
manga: LibraryManga,
|
||||||
category: Category?,
|
category: Category?,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue