From 79058440a1aff6c2c88bfafab4091e2344417fe8 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Thu, 25 Jun 2020 19:40:50 +0300 Subject: [PATCH] Fix grid span count #11 --- app/build.gradle | 8 ++++---- .../org/koitharu/kotatsu/ui/list/MangaListFragment.kt | 11 +++++------ .../org/koitharu/kotatsu/ui/list/MangaListSheet.kt | 11 +++++------ 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 26ee37c35..a5a1c8035 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -65,13 +65,13 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.3.0-alpha01' implementation 'androidx.activity:activity-ktx:1.2.0-alpha06' implementation 'androidx.fragment:fragment-ktx:1.3.0-alpha06' - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0-alpha04' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0-alpha05' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta7' - implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-rc01' - implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha03' + implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' + implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha04' implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01' implementation 'androidx.preference:preference-ktx:1.1.1' - implementation 'androidx.work:work-runtime-ktx:2.4.0-beta01' + implementation 'androidx.work:work-runtime-ktx:2.4.0-rc01' implementation 'com.google.android.material:material:1.3.0-alpha01' implementation 'androidx.room:room-runtime:2.2.5' diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/list/MangaListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/ui/list/MangaListFragment.kt index 2dcaae645..d12a28d9f 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/list/MangaListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/list/MangaListFragment.kt @@ -41,9 +41,9 @@ abstract class MangaListFragment : BaseFragment(R.layout.fragment_list), SectionItemDecoration.Callback, SwipeRefreshLayout.OnRefreshListener { private val settings by inject() - private val adapterConfig = MergeAdapter.Config.Builder() + private val adapterConfig = ConcatAdapter.Config.Builder() .setIsolateViewTypes(true) - .setStableIdMode(MergeAdapter.Config.StableIdMode.SHARED_STABLE_IDS) + .setStableIdMode(ConcatAdapter.Config.StableIdMode.SHARED_STABLE_IDS) .build() private var adapter: MangaListAdapter? = null @@ -245,18 +245,17 @@ abstract class MangaListFragment : BaseFragment(R.layout.fragment_list), adapter?.listMode = mode recyclerView.layoutManager = when (mode) { ListMode.GRID -> { - val spanCount = UiUtils.resolveGridSpanCount(ctx) - GridLayoutManager(ctx, spanCount).apply { + GridLayoutManager(ctx, UiUtils.resolveGridSpanCount(ctx)).apply { spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { override fun getSpanSize(position: Int) = if (position < getItemsCount()) - 1 else spanCount + 1 else this@apply.spanCount } } } else -> LinearLayoutManager(ctx) } recyclerView.recycledViewPool.clear() - recyclerView.adapter = MergeAdapter(adapterConfig, adapter, progressAdapter) + recyclerView.adapter = ConcatAdapter(adapterConfig, adapter, progressAdapter) recyclerView.addItemDecoration( when (mode) { ListMode.LIST -> DividerItemDecoration(ctx, RecyclerView.VERTICAL) diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/list/MangaListSheet.kt b/app/src/main/java/org/koitharu/kotatsu/ui/list/MangaListSheet.kt index ddddee7db..eddfdf2c4 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/list/MangaListSheet.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/list/MangaListSheet.kt @@ -36,9 +36,9 @@ abstract class MangaListSheet : BaseBottomSheet(R.layout.sheet_list), SharedPreferences.OnSharedPreferenceChangeListener, Toolbar.OnMenuItemClickListener { private val settings by inject() - private val adapterConfig = MergeAdapter.Config.Builder() + private val adapterConfig = ConcatAdapter.Config.Builder() .setIsolateViewTypes(true) - .setStableIdMode(MergeAdapter.Config.StableIdMode.SHARED_STABLE_IDS) + .setStableIdMode(ConcatAdapter.Config.StableIdMode.SHARED_STABLE_IDS) .build() private var adapter: MangaListAdapter? = null @@ -181,17 +181,16 @@ abstract class MangaListSheet : BaseBottomSheet(R.layout.sheet_list), adapter?.listMode = mode recyclerView.layoutManager = when (mode) { ListMode.GRID -> { - val spanCount = UiUtils.resolveGridSpanCount(ctx) - GridLayoutManager(ctx, spanCount).apply { + GridLayoutManager(ctx, UiUtils.resolveGridSpanCount(ctx)).apply { spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { override fun getSpanSize(position: Int) = if (position < getItemsCount()) - 1 else spanCount + 1 else this@apply.spanCount } } } else -> LinearLayoutManager(ctx) } - recyclerView.adapter = MergeAdapter(adapterConfig, adapter, progressAdapter) + recyclerView.adapter = ConcatAdapter(adapterConfig, adapter, progressAdapter) recyclerView.addItemDecoration( when (mode) { ListMode.LIST -> DividerItemDecoration(ctx, RecyclerView.VERTICAL)