fix: Fixed handling of position in card adapter.
All checks were successful
continuous-integration/drone/tag Build is passing

This commit is contained in:
aminecmi 2024-02-13 21:25:46 +01:00
parent db166ca9d4
commit 7870ca8976
3 changed files with 7 additions and 6 deletions

View File

@ -94,10 +94,10 @@ class ItemCardAdapter(
position: Int, position: Int,
) { ) {
with(holder) { with(holder) {
val itm = items[position] val itm = items[holder.bindingAdapterPosition]
handleClickListeners(position) handleClickListeners(holder.bindingAdapterPosition)
handleLinkOpening(position) handleLinkOpening(holder.bindingAdapterPosition)
binding.favButton.isSelected = itm.starred binding.favButton.isSelected = itm.starred
if (appSettingsService.getPublicAccess()) { if (appSettingsService.getPublicAccess()) {

View File

@ -45,13 +45,13 @@ class ItemListAdapter(
position: Int, position: Int,
) { ) {
with(holder) { with(holder) {
val itm = items[position] val itm = items[holder.bindingAdapterPosition]
binding.root.setOnClickListener { binding.root.setOnClickListener {
repository.setReaderItems(items) repository.setReaderItems(items)
c.openItemUrl( c.openItemUrl(
bindingAdapterPosition, holder.bindingAdapterPosition,
items[bindingAdapterPosition].getLinkDecoded(), items[holder.bindingAdapterPosition].getLinkDecoded(),
appSettingsService.isArticleViewerEnabled(), appSettingsService.isArticleViewerEnabled(),
app, app,
) )

View File

@ -89,6 +89,7 @@ abstract class ItemsAdapter<VH : RecyclerView.ViewHolder?> : RecyclerView.Adapte
if (repository.displayedItems == ItemType.UNREAD) { if (repository.displayedItems == ItemType.UNREAD) {
items.remove(item) items.remove(item)
notifyItemRemoved(position) notifyItemRemoved(position)
notifyItemRangeChanged(position, itemCount)
updateItems(items) updateItems(items)
} else { } else {
notifyItemChanged(position) notifyItemChanged(position)