Fix grid span count #11
This commit is contained in:
@@ -65,13 +65,13 @@ dependencies {
|
|||||||
implementation 'androidx.appcompat:appcompat:1.3.0-alpha01'
|
implementation 'androidx.appcompat:appcompat:1.3.0-alpha01'
|
||||||
implementation 'androidx.activity:activity-ktx:1.2.0-alpha06'
|
implementation 'androidx.activity:activity-ktx:1.2.0-alpha06'
|
||||||
implementation 'androidx.fragment:fragment-ktx:1.3.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.constraintlayout:constraintlayout:2.0.0-beta7'
|
||||||
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-rc01'
|
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha03'
|
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha04'
|
||||||
implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01'
|
implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01'
|
||||||
implementation 'androidx.preference:preference-ktx:1.1.1'
|
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 'com.google.android.material:material:1.3.0-alpha01'
|
||||||
|
|
||||||
implementation 'androidx.room:room-runtime:2.2.5'
|
implementation 'androidx.room:room-runtime:2.2.5'
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ abstract class MangaListFragment<E> : BaseFragment(R.layout.fragment_list),
|
|||||||
SectionItemDecoration.Callback, SwipeRefreshLayout.OnRefreshListener {
|
SectionItemDecoration.Callback, SwipeRefreshLayout.OnRefreshListener {
|
||||||
|
|
||||||
private val settings by inject<AppSettings>()
|
private val settings by inject<AppSettings>()
|
||||||
private val adapterConfig = MergeAdapter.Config.Builder()
|
private val adapterConfig = ConcatAdapter.Config.Builder()
|
||||||
.setIsolateViewTypes(true)
|
.setIsolateViewTypes(true)
|
||||||
.setStableIdMode(MergeAdapter.Config.StableIdMode.SHARED_STABLE_IDS)
|
.setStableIdMode(ConcatAdapter.Config.StableIdMode.SHARED_STABLE_IDS)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
private var adapter: MangaListAdapter? = null
|
private var adapter: MangaListAdapter? = null
|
||||||
@@ -245,18 +245,17 @@ abstract class MangaListFragment<E> : BaseFragment(R.layout.fragment_list),
|
|||||||
adapter?.listMode = mode
|
adapter?.listMode = mode
|
||||||
recyclerView.layoutManager = when (mode) {
|
recyclerView.layoutManager = when (mode) {
|
||||||
ListMode.GRID -> {
|
ListMode.GRID -> {
|
||||||
val spanCount = UiUtils.resolveGridSpanCount(ctx)
|
GridLayoutManager(ctx, UiUtils.resolveGridSpanCount(ctx)).apply {
|
||||||
GridLayoutManager(ctx, spanCount).apply {
|
|
||||||
spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
||||||
override fun getSpanSize(position: Int) = if (position < getItemsCount())
|
override fun getSpanSize(position: Int) = if (position < getItemsCount())
|
||||||
1 else spanCount
|
1 else this@apply.spanCount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> LinearLayoutManager(ctx)
|
else -> LinearLayoutManager(ctx)
|
||||||
}
|
}
|
||||||
recyclerView.recycledViewPool.clear()
|
recyclerView.recycledViewPool.clear()
|
||||||
recyclerView.adapter = MergeAdapter(adapterConfig, adapter, progressAdapter)
|
recyclerView.adapter = ConcatAdapter(adapterConfig, adapter, progressAdapter)
|
||||||
recyclerView.addItemDecoration(
|
recyclerView.addItemDecoration(
|
||||||
when (mode) {
|
when (mode) {
|
||||||
ListMode.LIST -> DividerItemDecoration(ctx, RecyclerView.VERTICAL)
|
ListMode.LIST -> DividerItemDecoration(ctx, RecyclerView.VERTICAL)
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ abstract class MangaListSheet<E> : BaseBottomSheet(R.layout.sheet_list),
|
|||||||
SharedPreferences.OnSharedPreferenceChangeListener, Toolbar.OnMenuItemClickListener {
|
SharedPreferences.OnSharedPreferenceChangeListener, Toolbar.OnMenuItemClickListener {
|
||||||
|
|
||||||
private val settings by inject<AppSettings>()
|
private val settings by inject<AppSettings>()
|
||||||
private val adapterConfig = MergeAdapter.Config.Builder()
|
private val adapterConfig = ConcatAdapter.Config.Builder()
|
||||||
.setIsolateViewTypes(true)
|
.setIsolateViewTypes(true)
|
||||||
.setStableIdMode(MergeAdapter.Config.StableIdMode.SHARED_STABLE_IDS)
|
.setStableIdMode(ConcatAdapter.Config.StableIdMode.SHARED_STABLE_IDS)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
private var adapter: MangaListAdapter? = null
|
private var adapter: MangaListAdapter? = null
|
||||||
@@ -181,17 +181,16 @@ abstract class MangaListSheet<E> : BaseBottomSheet(R.layout.sheet_list),
|
|||||||
adapter?.listMode = mode
|
adapter?.listMode = mode
|
||||||
recyclerView.layoutManager = when (mode) {
|
recyclerView.layoutManager = when (mode) {
|
||||||
ListMode.GRID -> {
|
ListMode.GRID -> {
|
||||||
val spanCount = UiUtils.resolveGridSpanCount(ctx)
|
GridLayoutManager(ctx, UiUtils.resolveGridSpanCount(ctx)).apply {
|
||||||
GridLayoutManager(ctx, spanCount).apply {
|
|
||||||
spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
||||||
override fun getSpanSize(position: Int) = if (position < getItemsCount())
|
override fun getSpanSize(position: Int) = if (position < getItemsCount())
|
||||||
1 else spanCount
|
1 else this@apply.spanCount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> LinearLayoutManager(ctx)
|
else -> LinearLayoutManager(ctx)
|
||||||
}
|
}
|
||||||
recyclerView.adapter = MergeAdapter(adapterConfig, adapter, progressAdapter)
|
recyclerView.adapter = ConcatAdapter(adapterConfig, adapter, progressAdapter)
|
||||||
recyclerView.addItemDecoration(
|
recyclerView.addItemDecoration(
|
||||||
when (mode) {
|
when (mode) {
|
||||||
ListMode.LIST -> DividerItemDecoration(ctx, RecyclerView.VERTICAL)
|
ListMode.LIST -> DividerItemDecoration(ctx, RecyclerView.VERTICAL)
|
||||||
|
|||||||
Reference in New Issue
Block a user