@ -5,14 +5,14 @@ import android.util.AttributeSet
import android.view.View
import android.view.View
import android.widget.FrameLayout
import android.widget.FrameLayout
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import dev.chrisbanes.insetter.applyInsetter
import dev.chrisbanes.insetter.Insetter
import dev.chrisbanes.insetter.windowInsetTypesOf
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.SelectableAdapter
import eu.davidea.flexibleadapter.SelectableAdapter
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.Manga
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.library.LibraryUpdateService
import eu.kanade.tachiyomi.data.library.LibraryUpdateService
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.databinding.LibraryCategoryBinding
import eu.kanade.tachiyomi.databinding.LibraryCategoryBinding
import eu.kanade.tachiyomi.ui.main.MainActivity
import eu.kanade.tachiyomi.ui.main.MainActivity
import eu.kanade.tachiyomi.util.lang.plusAssign
import eu.kanade.tachiyomi.util.lang.plusAssign
@ -27,9 +27,7 @@ import kotlinx.coroutines.flow.onEach
import reactivecircus.flowbinding.recyclerview.scrollStateChanges
import reactivecircus.flowbinding.recyclerview.scrollStateChanges
import reactivecircus.flowbinding.swiperefreshlayout.refreshes
import reactivecircus.flowbinding.swiperefreshlayout.refreshes
import rx.subscriptions.CompositeSubscription
import rx.subscriptions.CompositeSubscription
import uy.kohesive.injekt.injectLazy
import java.util.ArrayDeque
import java.util.ArrayDeque
import eu.kanade.tachiyomi.ui.library.setting.DisplayModeSetting as DisplayMode
/ * *
/ * *
* Fragment containing the library manga for a certain category .
* Fragment containing the library manga for a certain category .
@ -41,8 +39,6 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
private val scope = MainScope ( )
private val scope = MainScope ( )
private val preferences : PreferencesHelper by injectLazy ( )
/ * *
/ * *
* The fragment containing this view .
* The fragment containing this view .
* /
* /
@ -71,12 +67,10 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
private var lastClickPositionStack = ArrayDeque ( listOf ( - 1 ) )
private var lastClickPositionStack = ArrayDeque ( listOf ( - 1 ) )
fun onCreate ( controller : LibraryController , binding : LibraryCategoryBinding ) {
fun onCreate ( controller : LibraryController , binding : LibraryCategoryBinding , viewType : Int ) {
this . controller = controller
this . controller = controller
recycler = if ( preferences . libraryDisplayMode ( ) . get ( ) == DisplayMode . LIST &&
recycler = if ( viewType == LibraryAdapter . LIST _DISPLAY _MODE ) {
! preferences . categorisedDisplaySettings ( ) . get ( )
) {
( binding . swipeRefresh . inflate ( R . layout . library _list _recycler ) as AutofitRecyclerView ) . apply {
( binding . swipeRefresh . inflate ( R . layout . library _list _recycler ) as AutofitRecyclerView ) . apply {
spanCount = 1
spanCount = 1
}
}
@ -86,11 +80,9 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
}
}
}
}
recycler . applyInsetter {
Insetter . builder ( )
type ( navigationBars = true ) {
. paddingBottom ( windowInsetTypesOf ( navigationBars = true ) )
padding ( )
. applyToView ( recycler )
}
}
adapter = LibraryCategoryAdapter ( this )
adapter = LibraryCategoryAdapter ( this )
@ -129,15 +121,6 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
fun onBind ( category : Category ) {
fun onBind ( category : Category ) {
this . category = category
this . category = category
// If displayMode should be set from category adjust manga count per row
if ( preferences . categorisedDisplaySettings ( ) . get ( ) ) {
recycler . spanCount = if ( DisplayMode . fromFlag ( category . displayMode ) == DisplayMode . LIST || ( preferences . libraryDisplayMode ( ) . get ( ) == DisplayMode . LIST && category . id == 0 ) ) {
1
} else {
controller . mangaPerRow
}
}
adapter . mode = if ( controller . selectedMangas . isNotEmpty ( ) ) {
adapter . mode = if ( controller . selectedMangas . isNotEmpty ( ) ) {
SelectableAdapter . Mode . MULTI
SelectableAdapter . Mode . MULTI
} else {
} else {