diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt index a3e59a594..5739f3dc1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt @@ -130,8 +130,10 @@ open class BrowseSourcePresenter( query = savedState.getString(::query.name, "") } - prefs.catalogueViewSetting().asObservable() - .subscribe { setDisplayMode(it) } + add( + prefs.catalogueViewSetting().asObservable() + .subscribe { setDisplayMode(it) } + ) restartPager() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt index 39531b5a0..9d3fb2af3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt @@ -13,15 +13,14 @@ import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.widget.AutofitRecyclerView -import exh.util.updateLayoutParams import kotlinx.android.synthetic.main.source_grid_item.view.card import kotlinx.android.synthetic.main.source_grid_item.view.gradient -class SourceItem(val manga: Manga, private val catalogueAsList: Preference) : +class SourceItem(val manga: Manga, private val catalogueViewSetting: Preference) : AbstractFlexibleItem() { override fun getLayoutRes(): Int { - return when (catalogueAsList.get()) { + return when (catalogueViewSetting.get()) { 0 -> R.layout.source_grid_item 1 -> R.layout.source_list_item else -> R.layout.source_comfortable_grid_item @@ -35,7 +34,7 @@ class SourceItem(val manga: Manga, private val catalogueAsList: Preference) val parent = adapter.recyclerView return if (parent is AutofitRecyclerView) { val coverHeight = parent.itemWidth / 3 * 4 - if (catalogueAsList.get() == 0) { + if (catalogueViewSetting.get() == 0) { view.apply { card.layoutParams = FrameLayout.LayoutParams( MATCH_PARENT, coverHeight @@ -47,9 +46,9 @@ class SourceItem(val manga: Manga, private val catalogueAsList: Preference) SourceGridHolder(view, adapter) } else { view.apply { - card.updateLayoutParams { - height = coverHeight - } + card.layoutParams = ConstraintLayout.LayoutParams( + MATCH_PARENT, coverHeight + ) gradient.layoutParams = FrameLayout.LayoutParams( MATCH_PARENT, coverHeight / 2, Gravity.BOTTOM ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt index 41e7521b8..deb0a6aac 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt @@ -18,7 +18,6 @@ import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.widget.AutofitRecyclerView -import exh.util.updateLayoutParams import kotlinx.android.synthetic.main.source_comfortable_grid_item.view.title import kotlinx.android.synthetic.main.source_grid_item.view.card import kotlinx.android.synthetic.main.source_grid_item.view.gradient @@ -46,9 +45,9 @@ class LibraryItem(val manga: LibraryManga, private val libraryViewSetting: Prefe override fun createViewHolder(view: View, adapter: FlexibleAdapter>): LibraryHolder { val parent = adapter.recyclerView return if (parent is AutofitRecyclerView) { + val coverHeight = parent.itemWidth / 3 * 4 if (libraryViewSetting.get() == 0) { view.apply { - val coverHeight = parent.itemWidth / 3 * 4 card.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, coverHeight) gradient.layoutParams = FrameLayout.LayoutParams( MATCH_PARENT, coverHeight / 2, Gravity.BOTTOM @@ -57,10 +56,9 @@ class LibraryItem(val manga: LibraryManga, private val libraryViewSetting: Prefe LibraryGridHolder(view, adapter) } else { view.apply { - val coverHeight = parent.itemWidth / 3 * 4 - card.updateLayoutParams { - height = coverHeight - } + card.layoutParams = ConstraintLayout.LayoutParams( + MATCH_PARENT, coverHeight + ) gradient.layoutParams = FrameLayout.LayoutParams( MATCH_PARENT, coverHeight / 2, Gravity.BOTTOM ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index b9c0e6036..ea560eebe 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -301,10 +301,10 @@ class LibraryPresenter( * value. */ private fun getLibraryMangasObservable(): Observable { - val libraryAsList = preferences.libraryViewSetting() + val libraryViewSetting = preferences.libraryViewSetting() return db.getLibraryMangas().asRxObservable() .map { list -> - list.map { LibraryItem(it, libraryAsList) }.groupBy { it.manga.category } + list.map { LibraryItem(it, libraryViewSetting) }.groupBy { it.manga.category } } }